-
[백준] 2331 - 반복 수열알고리즘 2023. 5. 15. 17:19728x90
1. 문제
https://www.acmicpc.net/problem/2331
2331번: 반복수열
첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다.
www.acmicpc.net
2. 접근
1. 문제에 대한 이해가 어려웠는데, 결국 반복되는 구간이 생기면 그 구간을 전부 없애주면 된다는 의미
-> 알수있는점 : 반복되는 수 한개만 나오면 게임 끝 ( 왜냐하면 그 뒤부터는 같은 수들밖에 나올 수 없다 )
2. 반복되는 수가 나올때까지 d 에 넣는다.
3. 반복되는 수가 나오면 그거까지 넣고, while문 종료
4. d의 마지막 수가 반복되는 수니까 d에 대한 for문 돌리다가 마주치면 for문 break하고 결과값 출력
3. 풀이
# 2331 실버4 import sys input = sys.stdin.readline a, p = map(str,input().rstrip().split()) d = [a] while True: cnt = 0 for i in d[-1]: cnt += int(i) ** int(p) if str(cnt) not in d: d.append(str(cnt)) else: d.append(str(cnt)) break cnt = 0 for i in d: if i != d[-1]: cnt += 1 else: break print(cnt)
'알고리즘' 카테고리의 다른 글
[백준] 2960 - 에라토스테네스의 체 (0) 2023.05.16 [백준] 2503 - 숫자야구 (0) 2023.05.15 [백준] 1449 - 수리공 (0) 2023.05.15 [백준] 2491 - 수열 (1) 2023.05.15 [백준] 1713 - 후보 추천하기 (0) 2023.05.13