Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- HashMap
- 개발자
- 프로그래머스
- Linux
- Java
- 해결
- 구름LEVEL
- 도커
- bfs
- docker
- 구현
- 해시맵
- 백엔드
- 명령어
- IntelliJ
- 문자열
- HTTP
- 주니어
- 스타트업
- 자료구조
- 스프링부트
- 코딩테스트
- 배열
- 스프링 부트
- 이직
- 스프링
- spring boot
- dfs
- 인텔리제이
- spring
Archives
- Today
- Total
마이의 개발 블로그
[프로그래머스] 프린터 (Java) 본문
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
우선순위 대기열이다보니 스택이나 큐를 사용해서 풀어보려고 했는데 결국 반복문으로 해결했다.
- 계속 한쪽방향으로 순회하며
1) 문서의 가장 큰 우선순위 여부 체크
2) 가장 큰 우선순위인 경우 프린트 (해당 문서 우선순위를 0으로 변경)
3) 프린트 순서(order) 증가
4) 프린트된 문서가 location인 경우 순서 반환
Note
- 이 문제의 경우 탐색이 끝난 후 다음 index로 넘어갈 때 자동으로 이전 index의 문서가 마지막 프린트 우선순위가 되므로 별도로 문서의 우선순위를 저장할 필요가 없다고 판단했다. 탐색의 순서가 중간에 바뀌어야 하는 예외 상황들이 있거나 매회 체크해야하는 종료조건이 까다로웠다면 다른 자료구조를 활용했을 것이다.
- 프로그래머스 스택/큐 문제들은 아직까지는 꼭 그 자료구조를 활용하여 풀지 않아도 해결되는 경우가 종종 있는 것 같다.
class Solution {
public int solution(int[] priorities, int location) {
int idx = 0;
int order = 0;
while(true){
int doc = idx % priorities.length;
Boolean isHighest = true;
for(int p : priorities){
if(p > priorities[doc]){
isHighest = false;
break;
}
}
if(isHighest){
priorities[doc] = 0;
order++;
if(doc == location){
return order;
}
}
idx++;
}
}
}
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 오픈채팅방 (Java) (0) | 2023.01.29 |
---|---|
[프로그래머스] 위장 (Java) (0) | 2023.01.29 |
[프로그래머스] 타겟 넘버 (Java) (0) | 2023.01.27 |
[프로그래머스] 우박수열 정적분 (Java) (0) | 2023.01.25 |
[프로그래머스] 다트 게임 (Java) (0) | 2023.01.24 |
Comments