방명록
- [알고리즘][파이썬] 백준_1158_요세푸스 문제2022년 01월 05일 10시 57분 11초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
"1158번: 요세푸스 문제" 파이썬 풀이
https://www.acmicpc.net/problem/1158
1번 부터 N명의 사람이 원을 이루며 앉아있고,
K번째 사람을 한 사람씩 제거한다.
제거된 순서를 예제와 같은 형태로 출력하면 된다.
while문 사용
# while문 사용(결과: 맞았습니다!) N, K = map(int, input().split()) cir = [i for i in range(1, N+1)] rm = [] i = K - 1 while cir: if i > len(cir) - 1: i = i % len(cir) else: rm.append(str(cir.pop(i))) # join을 사용하기 위해서 값을 문자열로 append i += K - 1 print('<'+', '.join(rm)+'>')
cir(circle) 리스트의 값이 pop 되어 빈 리스트가 될 때까지 반복하였다.
이 문제에서 핵심은 i(index)에 해당하는 cir 리스트의 값을 pop 할때,
i 가 리스트의 범위를 벗어 날 경우에 대한 처리이다.
i 를 cir 리스트의 길이(len(cir))로 나눈 나머지가 i 가 되게하여 처리하였다.
"IndexError: list index out of range"
로 애먹었던 문제다!
728x90반응형'CS > 코딩 테스트' 카테고리의 다른 글
[레벨1][파이썬] 공원 산책 (0) 2023.04.17 [알고리즘][파이썬] 백준_10866_덱 (0) 2022.01.09 [알고리즘][파이썬] 백준_10845_큐 (0) 2022.01.03 [알고리즘][파이썬] 백준_1406_에디터 (0) 2022.01.01 [알고리즘][파이썬] 백준_1874_스택 수열 (0) 2021.12.30 다음글이 없습니다.이전글이 없습니다.댓글