728x90
✏️ 문제 링크
https://www.acmicpc.net/problem/11866
❓ 정답은 ??
1
2
3
4
5
6
7
8
9
10
11
12
|
n,k= map(int,input().split())
a= list(range(1,n+1))
result=[]
index = 0
while a:
index += k-1
if index >=len(a):
index %= len(a)
result.append(str(a.pop(index)))
print('<'+ ', '.join(map(str, result)) + '>')
|
cs |
💯 풀이 과정
1) 일단 range로 1~n개까지 숫자의 리스트를 만든다.
2) 6번째줄 -> a리스트 안에 요소가 있을 때까지 반복된다.( = 요소가 있으면 True)
3) 7번째줄 -> a의 index변수의 인덱스로 빼내는데 인덱스는 0부터 시작하니까 (k-1)더해가면서 배수 계산한다.
4) 배수안에 있으면 10번째 줄에 썼던 것처럼 pop을 한다,
5) 8번째줄 -> if조건의 인덱스가 a리스트 개수 이상일 때, 다시 인덱스 수를 줄여줘야하는데, 나머지들을 포함시켜서 그 다음 사이클에 넣어줘야한다. %=를 사용한다.
(예: 만약 1~ 7까지 숫자 중 3개씩 뽑을 때 1,2,(3),4,5,(6),7 이렇게 하면 ==> 3,6 뽑고 '남은 숫자7' 1개를 다음 사이클에 있어야하니까)
6) 나중에 출력은 < >괄호와 result 리스트안을 ', '으로 연결시키면서 출력하도록한다.
😎 오늘의 한줄평
while 반복문의 조건을 잘 설정하지 못해 엄청 애먹었는데, 앞으로 잘 설정해보장!
728x90
'😁 빅데이터 문제 풀기 & Study > - BAEKJOON 문제' 카테고리의 다른 글
CLASS 2 / [1436] 영화감독 숌 / 파이썬 (해설 포함. 브루트포스 탐색) (0) | 2022.02.01 |
---|---|
CLASS 2 / [2164] 카드2 / 파이썬 (0) | 2022.02.01 |
CLASS 2 / [10866] 덱 / 파이썬 (0) | 2022.01.31 |
CLASS 2 / [11050] 이항계수1 / 파이썬 (combinations 모듈 활용하기) (0) | 2022.01.31 |
CLASS 2 / [10816] 숫자카드2 / 파이썬 (딕셔너리의 위력) (0) | 2022.01.31 |