소스 코드
def solution(priorities, location):
answer = 0
# 탈출 조건
check = 0
while True:
# 출력할 숫자
n = priorities[0]
for q in range(len(priorities)):
# 현재 위치의 값이 출력할 숫자보다 크면
# 출력할 숫자를 priorities의 끝으로 보내기
# location값(내가 확인하고 싶은 값의 index) 갱신
if priorities[q] > n:
priorities.append(priorities.pop(0))
if location == 0:
location = len(priorities) - 1
else:
location -= 1
break
# for문 다 돌았는데도 출력할 숫자보다 큰 값을 못 찾은 경우
# 출력할 값 제외
# location 값이 0인 경우 == 이번에 출력해야 할 경우
else:
if q == len(priorities) - 1:
answer += 1
priorities.pop(0)
if location == 0:
check = 1
else:
location -= 1
if check == 1:
break
return answer
해결 방법
1. 조건에 따라 가장 앞에 있는 값을 마지막 위치로 보내주기 반복
2. location 값을 갱신하면서 원하는 값의 위치를 계속 확인
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제풀이.프로그래머스' 카테고리의 다른 글
[프로그래머스 코딩] 복서 정렬하기 - PYTHON (0) | 2021.09.06 |
---|---|
[프로그래머스 코딩] 실패율 - PYTHON (0) | 2021.09.05 |
[프로그래머스 코딩] 조이스틱 - PYTHON (0) | 2021.09.03 |
[프로그래머스 코딩] 전화번호 목록 - PYTHON (0) | 2021.09.02 |
[프로그래머스 코딩] 124 나라의 숫자 - PYTHON (0) | 2021.09.01 |