문제풀이/프로그래머스
-
[프로그래머스] 프린터 (Kotlin)문제풀이/프로그래머스 2021. 7. 2. 23:10
문제 링크 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 두 가지 방법으로 풀었습니다. 첫 번째 방법은 ArrayList를 이용한 큐의 구현, 두 번째 방법은 java.util.ArrayDeque를 import하여 사용. 로직은 동일하며, 다른 사람의 풀이에서도 크게 획기적인 방법은 찾지 못했습니다. 퍼포먼스는 케이스마다 조금씩 다르나, 평균적으로 아주 약간 ArrayDeque를 이용한 두 번째 방법이 더 좋게 나왔습니다. 내 풀이(1) class Solution { fun solution(priorities:..
-
[프로그래머스] 베스트앨범 (Kotlin)문제풀이/프로그래머스 2021. 6. 29. 22:45
문제 링크 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 내 코드 (failed) 파이썬으로 이미 풀어봤던 문제기 때문에 위풍당당하게 쭉쭉 코드를 적어나갔으나.... 여지없이 나를 붙잡는 UNSAFE_CALL 과 TYPE_MISMATCH. 일단 기록해둔 뒤 나중에 문제점을 살펴보겠습니다. class Solution { fun solution(genres: Array, plays: IntArray): IntArray { var answer = intArrayOf() val genre_play = HashMa..
-
[프로그래머스] 위장 (Kotlin)문제풀이/프로그래머스 2021. 6. 28. 15:20
https://programmers.co.kr/learn/courses/30/lessons/42578?language=kotlin 코딩테스트 연습 - 위장 programmers.co.kr 내 풀이 풀이(1) class Solution { fun solution(clothes: Array): Int { var answer = 1 val sep = HashMap() for (cloth in clothes) { sep[cloth[1]]?.let { sep.put(cloth[1], it + 1) } ?: sep.put(cloth[1], 1) } for (i in sep) { answer *= (i.value + 1) } return (answer - 1) } } ※ let 함수란? 💡 [Kotlin/코틀린] l..
-
[프로그래머스] 베스트앨범 (Python)문제풀이/프로그래머스 2021. 6. 21. 16:04
https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr def find_best_and_pop(d): best = list(d.keys())[0] for key in d: if d[key] > d[best]: best = key d.pop(best) return best def last(lst, idx): retbool = False ret = 0 if len(lst) >= idx + 2: if lst[idx][0..
-
[프로그래머스] 프린터 (Python)문제풀이/프로그래머스 2021. 3. 19. 15:47
문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 ..
-
[프로그래머스] 프린터 (Java)문제풀이/프로그래머스 2021. 3. 19. 15:43
문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A, B, C, D)가 순서대로 인쇄 대기목록에 있고 중요도가 2 1 3 2 라면 C D A B 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 ..
-
[프로그래머스] 두 개 뽑아서 더하기 (Java)문제풀이/프로그래머스 2021. 3. 19. 15:37
문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 입출력 예 설명 입출력 예 #1 2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.) 3 = 2 + 1 입니다. 4 = 1 + 3 입니다. 5 = 1 + 4 = 2 + 3 입니다. 6 = 2 + 4 입니다. 7 = 3 + 4 입..
-
[프로그래머스] 크레인 인형 뽑기 (Java)문제풀이/프로그래머스 2021. 3. 19. 15:26
문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데,..