728x90
주의점!
- 두 번째 예시에서 같은 숫자 1이 여러번 반복된다. 지정된 1을 기억하고 다른 1과 헷갈리지 않아야 한다
해결방법
- 0과 1로 이루어진 임시 리스트를 생성한다
def solution(priorities, location):
answer, answer2 = [], []
tmp = [0] * len(priorities)
tmp[location] = 1
while len(priorities) != 0:
if max(priorities) != priorities[0]:
priorities.append(priorities.pop(0))
tmp.append(tmp.pop(0))
elif max(priorities) == priorities[0]:
answer.append(priorities.pop(0))
answer2.append(tmp.pop(0))
for i in range(len(answer2)):
if answer2[i] == 1:
return i+1
이전에 백준에서 같은 문제를 풀었다. 1966번: 프린터 큐
다른 방법)
def solution(priorities, location):
answer = 0
max_num = max(priorities)
arr = [ [x, y] for x, y in zip(priorities, list(range(len(priorities)))) ]
while arr:
num, idx = arr.pop(0)
if num != max_num:
arr.append([num, idx])
else:
answer += 1
if idx == location:
return answer
max_num = 0
for n, i in arr:
if n > max_num:
max_num = n
이 방법으로도 100점을 받을 수 있었습니다.
728x90
'[Coding Test] > [프로그래머스]' 카테고리의 다른 글
[프로그래머스] lv2 기능개발 / 파이썬, 고득점kit (2) | 2023.10.09 |
---|---|
[프로그래머스] lv2 올바른 괄호 / 파이썬, 고득점kit (0) | 2023.10.09 |
[프로그래머스] lv1 같은 숫자는 싫어 / 파이썬, 고득점kit (0) | 2023.10.08 |
[프로그래머스] lv3 베스트앨범 / 파이썬, 고득점kit (0) | 2023.10.05 |
[프로그래머스] lv2 의상 / 파이썬, 고득점kit (0) | 2023.10.05 |