코딩테스트

문제 | 배열 원소의 길이 https://school.programmers.co.kr/learn/courses/30/lessons/120854 내 풀이 class Solution { fun solution(strlist: Array): IntArray = strlist.map { it.length }.toIntArray() } map 으로 각 원소를 바로 길이로 바꿨다. 문제 | 피자 나눠 먹기 (1) https://school.programmers.co.kr/learn/courses/30/lessons/120814 다른 사람 풀이 import kotlin.math.* class Solution { fun solution(n: Int) = ceil(n/7.0).toInt() } ceil(Double) 올..
레벨 2 넘어가니까 푸는게 힘들어져서 레벨 0,1 다시 쌓고 올라가기 🚩 코틀린스럽게 풀어보기... 0레벨 매일 최소 3문제 문제 | 머쓱이보다 키 큰 사람 https://school.programmers.co.kr/learn/courses/30/lessons/120585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 class Solution { fun solution(array: IntArray, height: Int): Int { var answer = array.filter{it > height}.count() return answer }..
배열에서 세 요소의 합이 0 이 되는 경우의 수를 찾는다. 내 풀이 class Solution { fun solution(number: IntArray): Int { var answer: Int = 0 if(number.size == 3 && number.sum() == 0) { return 1 } else if (number.size == 3 && number.sum() !=0) { return 0 } for(i in 0..number.size-3) { for(j in i+1 .. number.size-2) { for(k in j+1 .. number.size-1) { if(number[i]+number[j]+number[k] == 0) { answer += 1 } } } } return answer ..
실패한 풀이 class Solution { fun solution(n: Int, m: Int): IntArray { var answer = intArrayOf().toMutableList() if(m %n != 0) answer.add(1) else answer.add(n) answer.add((n*m)/answer[0]) return answer.toIntArray() } } 경우의 수를 if 문으로 나눠봤다. 실패한 풀이 2 class Solution { fun solution(n: Int, m: Int): IntArray { var answer = intArrayOf().toMutableList() if(m %n == 0) { answer.add(n) answer.add(m) } else if (n..
정렬을 해서 인덱스가 0인 요소를 제거하면 순서가 바껴서 그대로 반환할 수 없다. 풀이 실패 요소를 제거하기 위해 array가 아닌 다른 컬렉션으로 바꾼 뒤 제거하고 다시 array로 반환해야 한단다. 다른 사람 풀이 class Solution { fun solution(arr: IntArray): IntArray { var answer = intArrayOf() var arrs = arr.toMutableList() // MutableList 로 변환 arrs.remove(arrs.minOrNull()) // minOrNull()로 최솟값 제거 answer = arrs.toIntArray() // 다시 IntArray 로 변환 if(arrs.size == 0) answer = intArrayOf(-1)..
n을 3진법 상에서 앞뒤로 뒤집는다는게 자연수 n 을 3진법으로 바꾼 뒤 뒤집는 거겠지? 예로 나온 45의 경우 45 -> 1200 -> 0021 -> 7 3진법 변환 -> 뒤집음 -> 10진법 변환 와 하나도 모르겠다 .! n을 3으로 나눈 나머지를 n 이 0보다 작아질때까지 문자열에 차례대로 넣어서 앞뒤 반전된 3진법을 만들고 var answer: Int = 0 var x = n var y: String = "" while(x >0) { y += (x %3).toString() x /=3 } => 0021 이 문자열의 길이를 토대로 10진법으로 바꿔야하는데 reversed() 로 뒤집어서 => 1200 0번째 숫자 1은 3의 0승 * 1 1번째 숫자 2는 3의 1승 * 2 import kotlin.m..
Kotlin 대/소문자 변환 toUpperCase / toLowerCase 내 풀이 => 실패 class Solution { fun solution(s: String): String { var answer = "" s.mapIndexed{ i, n -> if( i%2 ==0 || i ==0 ) answer += n.toUpperCase() else answer += n.toLowerCase() } return answer } } 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 이게 문제인 것 같은데 문자열 전체로 본 인덱스가 아니고 "try hello world" 면 "try" 에서의 짝/홀수, "hello"에서의 짝/홀수? 힌트 .split(" ") "..
입출력 예를 보면 그냥 같은 인덱스의 값끼리 더해서 나오는게 아니라 배열 안의 배열 안의 요소들이 각각 더해져야 한다. 배열의 배열 -> 2차원 배열 val numbers = Array(3, {IntArray(4 ,{0})}) // 3행 4열 // [[0, 0, 0, 0],[0, 0, 0, 0], [0, 0, 0, 0]] 평소 다른 배열의 같은 인덱스끼리 더하는 for 문으로 했더니 결괏값이 [[4,6],[7,9]]가 아닌 [[1,2,3,4],[2,3,5,6]] 으로 나와버린다. 테스트 케이스 각각의 크기가 다른데 어떻게 더하지? 2차원 배열 예시 (https://www.youtube.com/watch?v=0Qncbm_f-Zc) val numbers2dZero = Array(3, {IntArray(4, ..
readLine 오랜만에 본다고 순간 뭐하는 앤지 못알아봤다. 내 풀이 fun main(args: Array) { val (a, b) = readLine()!!.split(' ').map(String::toInt) for(i in 1 .. b) { for(ii in 1 .. a) { print("*") } println() } } ?? 통과는 했는데 이게 맞나 싶어 다른 사람들걸 보니 다들 비슷비슷하다. val(a, b) = readLine() 입력받은 값이 쉼표로 구분되어 차례대로 a, 와 b 에 할당된다. 구조분해 선언! 데이터 클래스할 때 잠깐 봤었다. 이 a, b 는 각각의 변수고 이를 통해 각각 값을 할당받을 수 있다. val (name, age) = Pair("John", 25) println..
https://school.programmers.co.kr/learn/courses/30/lessons/12918 문자열의 요소가 숫자인지 어떻게 판별하는 걸까 is !is 로 판별하려고 했더니 문자가 들어가있는 문자열을 Int 로 변환하면 NumberFormatException 에러가 뜬다. 어떻게 하는지 모르겠다!! 힌트를 슬쩍 봤는데 정규표현식을 사용한단다. 저번에 가볍게 찾아봤을 때 입력값 조건에 사용하는 것만 봤는데 알고리즘에 쓰일 수 있다는게 이런거였구나.. 정규표현식으로 어떻게 하는지 찾기 전에 NumberFormatException 을 처리해보려고 수업에서 배운 try catch 를 써봤다. 내 풀이 class Solution { fun solution(s: String): Boolean ..
다시은
'코딩테스트' 카테고리의 글 목록