문제
https://www.acmicpc.net/problem/11866
풀이
N,K = map(int,input().split())
arr = [i+1 for i in range(N)] #1
answer=[]
cur=0 #2
while arr: #3
cur = (cur+K-1)%len(arr) #4
answer.append(arr.pop(cur)) #5
print("<"+", ".join(map(str,answer))+">") #6
현재 인덱스의 값을 pop하고 그 값을 답 리스트에 추가하는 방식으로 풀었다.
- 1~N까지 리스트 생성
- cur 선언. cur로 현재 인덱스를 구함
- arr이 비어있지 않을때동안
- cur에 K-1을 더해주고 arr의 길이만큼 나눈 나머지를 cur에 넣어줌
- arr의 cur인덱스의 값을 pop하고 answer에 더해줌.
- join을 사용하여 출력
느낀점
cur을 구할 때 -1을 하는 것이 바로바로 생각이 안난다.. ㅠㅠ 코드를 다 짜고 런해볼때 알아차린다.. 바로바로 생각나게 해보자..!!! 화이팅
'코딩테스트 > Python' 카테고리의 다른 글
[Python] 백준 #2675 - 문자열 반복 (1) | 2021.12.08 |
---|---|
[Python] 백준 #10866 - 덱 (1) | 2021.12.08 |
[Python] 백준 #2164 - 카드2 (1) | 2021.12.07 |
[Python] 백준 #18258 - 큐 2 (1) | 2021.12.07 |
[Python] 백준 #1874 - 스택 수열 (1) | 2021.12.05 |