본문 바로가기

분류 전체보기180

연속부분수열 2 N개의 수로 이루어진 수열이 주어집니다. 이 수열에서 연속부분수열의 합이 특정숫자 M이하가 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하세요. 만약 N=5, M=5이고 수열이 다음과 같다면 1 3 1 2 3 합이 5이하가 되는 연속부분수열은 {1},{3},{1},{2},{3},{1,3},{3,1},{1,2},{2,3},{1,3,1}로 총 10가지 입니다. 입력설명 첫째 줄에 N,M이 주어진다. 수열의 원소값은 1,000을 넘지 않는 자연수이다. 출력설명 첫째 줄에 경우의 수를 출력한다. 입력예제 1 5 5 1 3 1 2 3 출력예제 1 10 answer부분을 --> rt-lt+1로 구현 해석해보자 예를 들어, lt=0이고 rt=2인 경우 --> sum = 1+3+1 = 5를 나타낸다. rt - lt.. 2021. 7. 13.
연속 부분수열 1 N개의 수로 이루어진 수열이 주어집니다. 이 수열에서 연속부분수열의 합이 특정숫자 M이 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하세요. 만약, N=8, M=6이고 수열이 다음과 같다면 1 2 1 3 1 1 1 2 합이 6이 되는 연속부분수열은 {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}로 총 3가지입니다. 입력설명 첫째 줄에 N(1 6을 만족하므로 2를 빼준 후 lt++ 그럼 합이 1 + 3 4가됨 --> 이제 또다시 합이 6을 만족시키는 값을 찾아주면 된다. 이러한 방식으로 하면 n^2 --> n으로 줄어들게 된다. 2021. 7. 11.
공통원소 구하기 A,B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력하는 프로그램을 작성하세요. 입력예제 1 5 1 3 9 5 2 5 3 2 5 7 8 출력예제 1 2 3 5 구현 알고리즘 출력결과 투포인터 알고리즘 전달 받은 두 배열을 sort로 정렬을 해준다. 포인터를 2개를 만들어 각 배열을 지정하도록 한다. 1. 두배열을 비교해서 값이 같은경우 각각 인덱스를 나타내는 p1,p2를 둘다 증가시켜준다. 2.두배열을 비교해서 값이 다른경우 더작은 수를 가진 배열의 인덱스를 나타내는 p를 증가시켜준다. 왜? 이미 두 배열은 오름차순으로 정렬이 되어있다. 만약 각 배열의 수를 비교했을때, a라는 배열의 수가 작은경우엔 b라는 배열에는 더이상 a라는 배열의 수보다 작은 수가 존재 할 수 가 없다.. 2021. 7. 8.
3. STATE #3.0 Class Components and State State --> 동적 데이터와 함께 작업하는 경우 만들어진다. 변하는 데이터, 존재하지 않는 데이터, 생겨나고 사라지는 변경되는 데이터, 하나인 데이터, 두개가 되고 또는 0이 되는 종류의 것들 Class Component Class컴포넌트는 함수가 아니기때문에 return을 가지지 않고, render method를 가지고 있다. 이런식으로 선언을 해준다. 왜 갑자기 classComponent를 사용? --> classComponent에서 state를 사용할 수 있다. state는 object이고, component의 data를 넣을 공간이 있고, 이 데이터는 변하게 된다 class이기 때문에 this를 꼭 써주어야한다. 어떻게 하면 데이터를 바.. 2021. 6. 16.
2. JSX & PROPS Component --> HTML을 반환하는 함수 Component를 사용하려면 형식으로 사용해주어야 한다. react --> component를 사용해서 HTML처럼 작성하려는 경우에 필요하다 위와 같은 조합을 JSX라고 한다(react에서만 유효하다) JSX = JavaScript + HTML Component를 작성하기 위해서는 import React from "react"를 써주어야만 한다. 왜? 이렇게 하지 않으면 react는 jsx가 있는 component를 사용하는 것을 이해하지 못한다. 함수명은 대문자로 시작해야한다. 어떻게 사용해줄까? index.js에 가져와서 사용해주면 될까? 에러 발생 왜? react application이 하나의 component만 랜더링하기 때문이다 여기서 그 하.. 2021. 6. 16.
17. 가운데 문자 입력받기 문자열이 주어지고, 문자열의 길이가 짝수인 경우 가운데 포함해서 2개의 문자를 출력하고, 문자열의 길이가 홀수인 경우, 가운데 문자를 출력해라 문자열의 길이가 짝수인 경우와 홀수인 경우가 나누어져있기 때문에, if문을 이용해서 경우를 나누어 주었다. 짝수인 경우에는 문자열 길이를 2로나눈 값에서 1을 뺀 값과 문자열 길이를 2로 나눈 값을 word배열에 index값으로 넣어서 출력 주의) 배열은 1부터가 시작이 아닌, 0부터 시작하기 때문에 index - 1 을 해주어야 문자열에서 가운데 문자가 나오게 된다 홀수인 경우에는 우선 문자열 길이를 2로 나누어준다. 예시 7 --> 7/2 = 3.5 2가지 방법 3.5를 Math.floor를 해주게되면 3이된다. -> 배열 인덱스 값에 바로 넣어서 사용가능 왜.. 2021. 6. 16.
1. SETUP React를 사용하려면 기본적으로 Webpack, BaBel등 다운 받아야할 것이 있다 --> 하지만, react app을 사용하면 하나의 명령을 실행해서 React Web App을 Set up 할 수 있게 해준다 npx create-react-app이라는 명령과 원하는 폴더명을 친후 Enter를 입력해준다. 대문자 쓰지 말라고 오류가 떳다 설치가 완료되었다. 저렇게 타이핑하면 react시작 된다해서 해봄 컴파일이 잘 됬다 code 명령어를 실행해 vsc에디터를 실행시켜 보자 다양한 폴더들이 존재한다, 필요없는 거 다지워준다. App.js 내용 수정하고 컴파일 어떠한 원리로 동작이 되는 것일까? index.js에서 App.js있는 App 컴포넌트를 가져온다. 가져온 후에 ReactDOM.render를 통.. 2021. 6. 15.
3. Commits Commit --> 기록 git에 어떠한 변경사항이 있을때 record를 세팅하는 것 즉, 변경사항에 대한 설명을 적어줌으로써, 변경된 시점에 어떠한 목적으로 한것인지 나타낼 수 있다. 보이는 것처럼 제목과 설명을 적는 칸이 있다. 이전에 커밋했던 기록을 보면 제목을 적는 칸에 적은 내용은 history에서 제목으로 남겨진다. 제목 밑에 적은 설명란을 보려면, history에 나와있는 제목을 클릭해서 보면 된다. Commit Title은 필수항목이다 내용입력을 하고 난후, Commit to main버튼을 입력하면 main branch로 변경된 내용과 제목, 설명란을 전달해준다. history에 커밋한 내용이 업로드 된다. 2021. 6. 15.
2. Repositories Repositories는 폴더 기본적으로 우리의 파일 들이 있는 곳, git이 주시하고 있는 곳 Repositories 실습 일기장 프로젝트를 하면서 만들어 놓은 Diary Repository를 보면, No local changes라고 쓰여있다. html문서에 h1태그를 추가하고 저장하자 No local chages라고 보이던 부분이 수정해주었던 부분으로 바뀌었다. git이 변화하는 것 하나하나 다 주시하고있다 --> 트래킹 Repository를 생성시 파일경로를 입력한다. 왜? Git은 Repository를 주시하고, 그 Repository는 우리가 입력한 파일경로를 나타내면, Git이 그 파일 경로를 주시하기 때문이다. 즉, 입력된 파일 경로의 내용이 변경될때마다, git이 주시하다가 그 변경된 내용.. 2021. 6. 15.