이렇게 구현하면 조금 비효율적인가요?
157
작성한 질문수 68
아래와 같이 구현해보았는데 이러면 pop(idx) 부분에서 리스트가 하나씩 밀리는 연산이 있으니까 비효율적인가요? 강의에서 나온 코드도 pop하고 다시 끝에 붙이니까 비슷한거 같기도해서요. 코드평가한번만 부탁드립니다.
n, k = map(int, input().split())
q = list(range(1, n+1))
cnt = 0
idx = 0
while q:
cnt += 1
if cnt == k:
cand = q.pop(idx)
cnt = 0
n -= 1
else:
idx = (idx+1) % n
if not q:
print(cand)
답변 1
1
리스트는 pop() 하면 밀리는 연산이 있고, deque는 없습니다. 이 문제가 N제한이 300,000만 정도 였다면 큰 속도차이가 납니다.
위에 코드와 제가 deque로 제공한 소스파일과 300000 3 입력을 테스트해 보세요.
기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.
0
76
2
스택에서 ')'을 만나는 경우
0
78
3
문제가 어디있나요?
0
65
2
변수 or 함수명
0
61
1
침몰하는 타이타닉 문제 질문입니다
0
56
1
AA.py 책점 에러
0
57
1
오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.
0
111
2
5.동전분배하기 문제 밑에코드도 정답이될까요?
0
110
1
아나그램 비교 코드
0
116
2
AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.
0
160
2
문제 링크가있나여?
0
147
2
채점기 Time Limit Exceeded 오류 문의
1
163
2
동적계획법은 사용하는 문제
0
126
2
제 코드 좀 봐주세요
0
148
1
예외가 존재할 가능성?
0
97
1
3번이 안풀립니다
0
93
0
5번 틀림
0
114
0
오류원인?
0
98
0
리스트 선언
0
106
1
침몰하는 타이타닉(그리디) 문제 질문
0
109
1
알고리즘
0
69
1
코딩테스트
0
92
1
DFS 순서 질문드립니다.
0
126
2
left, right를 사용한 풀이법에 대한 질문입니다
0
91
1





