[BOJ21315] 카드 섞기
Updated:
문제
- 카드가 1 ~ N 순서대로 쌓여있음
- (2, k) 섞기 -> k + 1단계로 이루어짐. 밑에서 2^k개를 맨 위로 올리기
- 2번 (2, k) 섞기 후의 카드 더미 결과가 주어졌을 때, k 알아내기
입력
- N
- 2번의 (2, k) 섞기 후의 카드 더미가 위에 있는 카드부터 공백으로 구분하여 주어짐
출력
- 첫 번째 k와 두 번째 k를 출력
설계
- 2중 포문을 이용하여 k 두 개 구하기
- mix 함수 구현 - 뒤에서 2^k개를 앞으로 보내는 재귀함수
피드백
- 처음 구현했을 때, 1자리의 수만 생각하여 접근
- 간단하게 string, substr 이용하여 풀이하여 틀림
- N은 1000이하의 수이기 때문에, 수를 담을 컨테이너가 따로 필요
- 2^n이 필요할 때는 pow 대신 (1 « n 이용)
How I solved(click to github)
ref :
BOJ21315
Leave a comment