[1021]. 회전하는 큐
[1. 문제설명] 연산1: 첫번째 원소를 제거한다. 연산2: 첫번째 원소를 왼쪽으로 한칸 이동 연산3: 마지막 원소를 오른쪽으로 한칸 이동 큐에 처음 포함되어 있던 수가 N 개, 뽑고자 하는 원소의 위치가 입력으로 주어 질 때, 원소를 주어진 순서대로 뽑아내는데 필요 한, 2번, 3번 연산의 최소 값을 출력 [2. 풀이 접근] 완전 탐색 => deque 에 첫번째 원소가 찾고자 하는 원소인 경우, 연산 1 수행 후, 다음 재귀 호출 => 위 경우가 아닌 경우, 연산 2 수행 후 기존 deque 복원 후, 연산 3 수행 ==> 문제점, 무한 루프 발생 == ==> 2번 연산 수행 후 재귀 호출 시 연산 3을 수행 할 경우, 원래 상태로 복원 되버림 ==> 일종의 cycle 이 발생 함. 완전 탐색 Cycl..
[4673] 셀프 넘버
[1. 문제 재정의 및 추상화] d(n) = n + {n 의 각 자리수의 합} ex) d(75) = 75 + 7 + 5 = 87 여기서 n 을 d(n) 의 생성자라 하며, 생성자가 없는 숫자를 셀프 넘버라 한다. ex) 1, 3, 5, 7, 9, ... 요구사항 => 10000보다 작거나 같은 셀프 넘버를 한줄씩 출력해야 함. [2. 해결 계획] 셀프 넘버는 생성자가 없으므로, d(n) 수열에서 가장 처음에 온다 할 수 있다. 계산된 d(n) 은 셀프 넘버가 아니므로, 출력하지 않도록 한다. 10K+1 길이를 갖는 배열을 생성하고, 셀프 넘버인 n 을 index 로 하는 경우 그 값을 0으로하고, 셀프 넘버가 아닌 경우 그 생성자를 저장하도록 한다. [3. 계획 검증] 메모리 제한은 크게 상관 없어 보임..