728x90
반응형

전체 글 79

[프로그래머스] 기사단원의 무기 - kotlin

숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. import kotlin.math.sqrt class Solution { fun solution(number: Int, limit: Int, power: Int): Int { var answer: Int = 0 for (i in 1..number) { answer += powerGauge(i, limit, pow..

[프로그래머스] 숫자 짝꿍 - kotlin

두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. import kotlin.math.min class Solution { fun solution(X: String, Y: String): String { val xMap = X.groupingBy { chr -> chr }.eachCount() val yMap = Y.groupingBy { chr -> chr }.eachCount() val sb = StringBuil..

[프로그래머스] 옹알이 (2) - kotlin

머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. class Solution { fun solution(babbling: Array): Int { val strRegex = "ayaaya|yeye|woowoo|mama".toRegex() val strRegex2 = "aya|ye|woo|ma".toRegex() return babbling.map { b -> b.re..

[프로그래머스] 달리기 경주 - kotlin

얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다. class Solution { fun solution(players: Array, callings: Array): Array { val rank: MutableMap = players.mapIndexed { i, player -> player to i } .toMap() .toMutableMap() for (..

[프로그래머스] 문자열 나누기 - kotlin

문제 설명 문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 합니다. 먼저 첫 글자를 읽습니다. 이 글자를 x라고 합시다. 이제 이 문자열을 왼쪽에서 오른쪽으로 읽어나가면서, x와 x가 아닌 다른 글자들이 나온 횟수를 각각 셉니다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리합니다. class Solution { fun solution(s: String): Int { var answer: Int = 0 var chr = ' ' var cnt = 0 for (c in s) { when (chr) { ' ', c -> { cnt++ chr = c } else -> { cnt-- } } if (cnt == 0) { answer++ chr = ' ' ..

[프로그래머스] 성격 유형 검사하기 - kotlin

나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. class Solution { fun solution(survey: Array, choices: IntArray): String { val mutableMap = mutableMapOf( "R" to 0, "T" to 0, "C" to 0, "F" to 0, "J" to 0, "M" to 0, "A" to 0, "N" to 0) for ((idx, value) in choices.withIndex()) { when (value) { 1,2,3 -> { val key = survey[idx][0].toString() mutableMap[..

[프로그래머스] 햄버거 만들기 - 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..

728x90
반응형