프로그래머스
-
💡코딩테스트 준비를 위한 효과적인 알고리즘 공부 방법| 자료구조 & 알고리즘/알고리즘 2023. 10. 21. 10:44
코딩 테스트는 개발자 진로를 희망하는 학생, 취준생, 직장인들이 부딪히는 난관입니다. 저 또한 비전공자로 취준을 시작해서, 수많은 코딩테스트를 치러 왔고, 마침내 최종합격하여 개발자로서 일하고 있습니다. 제 경험을 바탕으로 "코딩테스트 준비를 위한 효과적인 알고리즘 공부 방법"을 정리해볼까 합니다. 언어 선택 프로그래밍 언어는 아주 다양합니다. C, C++, Java, Python, JavaScript, Kotlin, Go, C#, Rust, Dart, Swift, Objective-C, 엄랭(ㅋㅋ), 등등...코딩테스트를 학습하려면 먼저 어떤 언어로 코딩할건지 정해야겠죠. 저는 취준할 때 조금 미련하게 했습니다. C, Python, Kotlin, Go, Java 다섯 가지 언어로 코딩테스트를 대비했습니..
-
[프로그래머스] 프린터 (Kotlin)문제풀이/프로그래머스 2021. 7. 2. 23:10
문제 링크 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 두 가지 방법으로 풀었습니다. 첫 번째 방법은 ArrayList를 이용한 큐의 구현, 두 번째 방법은 java.util.ArrayDeque를 import하여 사용. 로직은 동일하며, 다른 사람의 풀이에서도 크게 획기적인 방법은 찾지 못했습니다. 퍼포먼스는 케이스마다 조금씩 다르나, 평균적으로 아주 약간 ArrayDeque를 이용한 두 번째 방법이 더 좋게 나왔습니다. 내 풀이(1) class Solution { fun solution(priorities:..
-
[프로그래머스] 기능개발 (Kotlin)카테고리 없음 2021. 6. 30. 17:18
문제 링크 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 내 풀이 class Solution { fun solution(progresses: IntArray, speeds: IntArray): IntArray { val tmp = mutableListOf() for (i in progresses.indices) { if ((100 - progresses[i]) % speeds[i] != 0) { tmp.add((100 - progresses[i]) / speeds[i] + 1) } else { tmp..
-
[프로그래머스] 베스트앨범 (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 순으로 인쇄하게 됩니다. 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 ..