본문 바로가기

분류 전체보기98

[9095번] 1,2,3 더하기 9095번: 1, 2, 3 더하기 www.acmicpc.net 이 문제는 재귀를 이용해서 풀 수도 있고, DP를 이용해서 풀 수도 있다. 입력 값이 적기 때문에 재귀를 이용해도 충분히 풀 수 있다. /*9095번 1,2,3 더하기*/ #include using namespace std; int T, input, result; void go(int sum) { if (sum > input) return; else if (sum == input) result++; else { for (int i = 1; i > T; while (T--) { cin >> input; go(0); cout T; while (T--) { int Memo[12] = {}; Memo[0] = 1; cin >> input; for (.. 2019. 4. 1.
[1182번] 부분수열의 합 1182번: 부분수열의 합 www.acmicpc.net 모든 경우를 다 실행해 보는 완전탐색 문제다. 재귀호출을 이용해서 풀면된다. 재귀 호출 시 2가지 경우를 나눠서 호출하는데, 1. 현재 방문지역(index)의 값을 더해준 뒤 다음을 호출 2. 현재 방문지역의 값을 더해주지 않고 다음을 호출 원소의 개수가 3개인 배열을 예로 들어 그림으로 표현해 보면 이런 식으로 볼 수 있다. /*1182번 부분수열의 합*/ #include using namespace std; int N, S, cnt; int arr[20]; void Search(int index,int sum) { int temp = sum + arr[index]; if (index >= N) return; if (temp == S) cnt++;.. 2019. 4. 1.
[STL] list 정리 [STL] list 정리 및 예제 list 컨테이너는 vector와 deque 처럼 시퀀스 컨테이너로 원소가 상대적인 순서를 유지한다. 그러나 list는 노드 기반 컨테이너로 원소가 노드 단위로 저장되며 list는 이중 연결 리스트로 구현된다. 템플릿 형식 template calss list T 는 list 컨테이너 원소의 형식 생성자 list lt lt는 빈 컨테이너이다. list lt(n) lt는 기본값으로 초기화된 n개의 원소를 갖는다. list lt(n, x) lt는 x 값으로 초기화된 n개의 원소를 갖는다. list lt(lt2) lt는 lt2 컨테이너의 복사본이다 list lt(b,e) lt는 반복자 구간 [b,e)로 초기화된 원소를 갖는다. 멤버 함수 lt.assign(n,x) lt에 x 값.. 2019. 3. 26.
[1406번] 에디터 1406번: 에디터 www.acmicpc.net 이 문제는 단순히 문자열을 erase함수를 통해 지워나가면 지운 빈 공간을 채우기 위해 앞으로 한칸씩 당기는 과정을 거치는데 문자열이 많아지거나 명령어가 많아지면 시간초과가 발생한다. 일반적으로 2가지 방법으로 풀수 있다. 1. 연결리스트 연결리스트를 이용하는 것은 직접 구현을 하거나 list STL을 사용하면된다. 연결리스트를 사용하면 단순 탐색시간만 소요되기 때문에 시간 내에 처리할 수 있다. list를 이용해서 erase할 때, 반복자를 리스트.end()로 줄 경우 end()는 마지막 원소의 다음을 가르키기 때문에 주의해야한다. /*1406번 에디터 (solved by list)*/ #include #include #include using names.. 2019. 3. 26.