[Level 2] 프로그래머스 프린터 코틀린 풀이
[Level 2] 프로그래머스 프린터 코틀린 풀이
문제 소개
이번에 풀어볼 문제는 프린터 입니다
각 문서에 중요도가 붙어있고 리스트에 넣어져있는데, 중요도가 제일 높거나 같으면 출력 아니라면 맨 뒤로 보내는것을 반복하면서 작동합니다.
문제풀이
제일 먼저
1 | var arr = priorities.mapIndexed { index, value -> |
을 통해서 입력받은 중요도 리스트에서 index == location
를 통해서 내가 뽑고 싶은 문서만 true
를 달아줍니다.
그 다음 while
을 이용해서 리스트가 빌 때 까지 반복을 돌며
1 | otherArr.any { it.first > tmp.first } |
을 통해서 모든 리스트중에서 내가 제일 큰지 확인합니다.
- 크지 않다면 앞에서 하나를 대기목록의 가장 마지막에 넣고
- 크다면 정답을 1늘린다
다시 루프를 돌면서 위 과정을 반복하면서 내가 뽑고싶은 문서를 찾습니다.
내가 뽑고 싶은 문제가 나오면 break를 걸고 정답을 출력합니다.
정답 코드
1 | class Solution { |
문제의 핵심은 제시한대로 코드를 짜서 직접 프린터 로직을 따라가는 구현이었던것 같습니다
점점 문제가 어려워지는게 느껴집니다.
궁금한점이 있으면 댓글로 남겨주세요 :)
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges