[Python] 백준 1158번 : 요세푸스 문제

2025. 4. 9. 00:56

 

접근 방법 1

while문을 활용하여 문제 해결 시도 -> 시간 초과 에러 발생

def josephus_problem(n, k):
    numbers = [False] * n
    cur_index = 0
    answer = []

    while len(answer) < n:
        count = 0
        while count < k:
            if not numbers[cur_index]:
                count += 1
                if count == k:
                    break
            cur_index = (cur_index + 1) % n

        numbers[cur_index] = True
        answer.append(cur_index + 1)

    return answer

n, k = map(int, input().split())
answer = josephus_problem(n, k)

print(f"<{', '.join(map(str, answer))}>")

 

접근 방법 2

리스트 슬라이싱을 활용하여 문제 해결 시도

'''
	해결 중
'''

BELATED ARTICLES

more