일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- DB
- javascript
- python all testcode
- 재귀함수가 뭔가요
- MySQL server on 'db' (115)
- 우아한테크코스 2차
- depends_on
- 갓재석
- Django
- docker
- Spring
- AWS
- depends
- TypeError: 'property' object is not iterable
- 2차 코딩테스트
- docker-compose
- 우아한 테크코스 2차 합격
- 프로그래머스
- EC2
- github skyline
- 코딩테스트
- springboot 3.0.0
- github
- classproperty
- METACLASS
- classmethod
- S3
- OperationalError
- python
- AWS S3
Archives
hanbin.dev
[코딩테스트] 프로그래머스 프린터 with Python 본문
아이디어
대기열의 첫번째가 나머지 보다 크다면 대기열에서 삭제 (인쇄)
=> 대기열의 첫번째 보다 나머지가 작지 않다면 대기열 맨 뒤로 보냄하나가 인쇄 될 때 마다 answer += 1
만약 인쇄 된 문서의 순서(i)가 location과 일치한다면 answer return
하나라도 첫번째 보다 크다면 대기열 맨 뒤로 보냄
문제 풀이 코드
def solution(priorities, location): answer = 0 priorities = [(i,value) for i, value in enumerate(priorities)] # 1 while True: move_to_back = False for priority in priorities: # 2 if priorities[0][1] < priority[1]: move_to_back = True break if move_to_back: # 3 priorities.append(priorities.pop(0)) else: # 4 answer += 1 if priorities[0][0] == location: return answer priorities.pop(0)
1
초기 location을 기억하기 위해 데이터 구조를
[index, value]
로 변경2
하나라도 맨 앞의 문서보다 중요도가 높다면
move_to_back = True
3
하나라도 맨 앞의 문서보다 중요도가 높다면 맨 앞의 문서를 맨 뒤로 이동시킴
4
맨 앞의 문서의 중요도가 가장 높으면 인쇄(대기열에서 삭제)하며 몇번째로 실행되었는지 알기 위해 answer에 +1을 해준다.
또한, 내가 찾는 문서라면 answer을 반환한다
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 더 맵게 with Python (0) | 2021.05.12 |
---|---|
[코딩테스트] 전화번호 목록 with Python (0) | 2021.05.11 |
[코딩테스트] 프로그래머스 다리를 지나는 트럭 with Python (0) | 2021.05.09 |
[코딩테스트] 프로그래머스 기능개발 with javascript (0) | 2021.05.07 |
[코딩테스트] 프로그래머스 체육복 with javascript (0) | 2021.05.06 |