반응형
https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
문제 정리 : N명이서 원으로 둘러 앉을 때, K번째 순서마다 걸려 빠지는 번호를 출력
import sys
s = "<" # 정답 선언
end, a = map(int,sys.stdin.readline().split(" ")) # 범위와 단위 입력
l =[i for i in range(1,end+1)] # 1~ N 까지
key = 0 # 단위를 확인하기 위한 변수
while True:
l1 = [] # 새로운 스택 선언
for i in l: # l의 요소만큼
key = key +1 # key 1씩 증가
if key == a: # key 가 단위와 같아질 경우
key = 0 # key 초기화
s = s+str(i)+", " # 정답에 추가
else: #key가 단위보다 작을 경우
l1.append(i) #새로운 스택에 넣기
if len(l1) == 0: # 탈출 조건
break
l = l1 # l을 새로운 스택으로 바꾸기
print(s[:-2]+">")
새로운 스택을 만듬으로서 기존의 입력값에서 인덱스로 제거하는 것보다
append만을 사용하게 됨으로서 시간절약 가능
또한 이 방법을 사용하면, 사라진 값은 새로운 스택에서 없어지므로 고려할 필요가 없어지게 된다.
반응형
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 15988번 : 1, 2, 3 더하기 3 (python 파이썬) (0) | 2022.03.17 |
---|---|
[백준] 17298번 : 오큰수 (python 파이썬) (0) | 2022.03.16 |
[백준] 1406번 : 에디터 (python 파이썬) (0) | 2022.03.12 |
[백준] 1929번 : 소수 구하기 (python 파이썬) [에라토스테네스의 체] (1) | 2022.03.10 |
[백준] 11286번 : 절대값 힙 (python 파이썬) (0) | 2022.03.10 |