728x90
반응형

Kotlin/코딩테스트 33

[프로그래머스] 햄버거 만들기 - kotlin

햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지는 경우는 없습니다. class Solution { fun solution(ingredient: IntArray): Int { var answer: Int = 0 val list =..

[프로그래머스] 둘만의 암호 - kotlin

두 문자열 s와 skip, 그리고 자연수 index가 주어질 때, 다음 규칙에 따라 문자열을 만들려 합니다. 암호의 규칙은 다음과 같습니다. 문자열 s의 각 알파벳을 index만큼 뒤의 알파벳으로 바꿔줍니다. index만큼의 뒤의 알파벳이 z를 넘어갈 경우 다시 a로 돌아갑니다. skip에 있는 알파벳은 제외하고 건너뜁니다. class Solution { fun solution(s: String, skip: String, index: Int): String { var answer: String = "" val chrs = ('a'..'z').filter { chr -> !skip.contains(chr) } val len = chrs.size for (chr in s) { val idx = chrs.in..

[프로그래머스] 대충 만든 자판 - kotlin

휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다. import kotlin.math.min class Solution { fun solution(keymap: Array, targets: Array): IntArray { val answer = mutableListOf() val map = mutableMapOf() for (key in keymap) { for ((idx, value) in key.withIndex()) { val cnt = idx + 1 map[value] = min(map[value] ?: cnt, cnt) } } for (tar..

[프로그래머스] 공원 산책 - kotlin

지나다니는 길을 'O', 장애물을 'X'로 나타낸 직사각형 격자 모양의 공원에서 로봇 강아지가 산책을 하려합니다. 산책은 로봇 강아지에 미리 입력된 명령에 따라 진행하며, 명령은 다음과 같은 형식으로 주어집니다. class Solution { fun solution(park: Array, routes: Array): IntArray { val maxRow = park.size val maxCol = park[0].length var currentRow: Int = -1 var currentCol: Int = -1 val parkList = mutableListOf() for ((indexX, str) in park.withIndex()) { parkList.add(str.toList()) if (curr..

[프로그래머스] 개인정보 수집 유효기간 - kotlin

고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. class Solution { fun solution(today: String, terms: Array, privacies: Array): IntArray { var answer = mutableListOf() val curDate = today.split(".") val curDays = (curDate[0].toInt() * 12 * 28) + ((curDate[1].toInt(..

[프로그래머스] 바탕화면 정리 - kotlin

코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. class Solution { fun solution(wallpaper: Array): IntArray { var answer: IntArray = intArrayOf(-1, -1, -1, -1) wallpaper.forEachIndexed { index, s -> val firstIdx = s.indexOfFirst { c -> c == ..

728x90
반응형