class Solution { fun solution(seoul: Array): String { var a = seoul.indexOf("Kim") var answer = "김서방은 ${a}에 있다" return answer } } Array 의 특정 원소의 인덱스 값 구하기 .indexOf() 원소가 없으면 -1을 반환한다.
코딩테스트
실패 풀이 class Solution { fun solution(num: Int): Int { var answer = 0 var number = num while(true)( if ( num == 1){ break } else if ( number == 1) { break } else if ( answer == 500) { answer = -1 break } else if (number%2==0) { number /=2 answer += 1 } else if (number%2 != 0) { number = number*3 + 1 answer += 1 } ) return answer } } 테스트에서 626331 인 경우만 실패한다. 출력한걸 확인해보면 값이 1이 될 때 반복횟수가 488이다. 그래서 48..
a, b 의 대소관계가 정해져 있지 않다는 점...! 값이 같은 경우를 따로 빼고 그 외에는 for문을 돌리려고 해도 a..b 에서 성립이 안돼서 결괏값이 0이 나온다. a가 큰 경우, b 가 큰 경우 각각 조건을 만들 수는 있지만 너무 길어져서 그렇게 만들기 싫은데 다른 방법 없을까? 생각해봐도 모르겠어서 그냥 If 조건문에 넣었다...ㅜㅜ 내 풀이 class Solution { fun solution(a: Int, b: Int): Long { var answer: Long = 0 if (a-b == 0) { answer = a.toLong() } else if (a-b < 0) { for(i in a..b){ answer += i.toLong() } } else { for(i in b..a){ ans..
하샤드 수 : 각 자릿수의 합으로 나누어지는 양의 정수 처음 코드class Solution { fun solution(x: Int): Boolean { var answer = true var x: Int = x var xs: Int = 0 while(x > 0){ xs += (x %10) x /= 10 println(xs) println(x) } if (x % xs == 0) { answer = true } else { answer = false } return answer } } 테스트 3, 4 에서 결괏값이 다르게 나온다. 출력한 값은 맞게 나오는데 왜 false 로 나와야할게 true 로 나오는 걸까 IF 구문 넣기 전에 x 값이 10으로 몽땅 나눠서 0인 상태로 IF 구문에 들어가기 때문에 결괏값..
모르겠다...!! 저번에 Long 타입의 숫자를 역순으로 배치해서 배열로 리턴하라는 건 된다. 근데 배열이 아닌 정수를 어떻게 정렬하지?? 컬렉션으로 만들어서 정렬한다 쳐도 그걸 어떻게 다시 정수로 리턴하지? 컬렉션이 아닌 Long 이나 Int 를 어떻게 정렬하지? 다른 사람 풀이 class Solution { fun solution(n: Long): Long = String(n.toString().toCharArray().sortedArrayDescending()).toLong() } Long -> String -> CharArray -> 정렬 -> String -> Long toCharArray() : 문자열이 개별적인 Char 요소로 분리되어 배열로 만들어짐 sortedArrayDescending(..
제곱근/제곱 구하기 Double 형이나 Float 형이어야 한다. import Kotlin.math.* var a = 25 var answer = sqrt(a) var answer2 = answer.pow(2) 첫 시도 import kotlin.math.* class Solution { fun solution(n: Long): Long { var x = sqrt(n.toDouble()) var answer : Long = 0 if ( x > 0 ) { answer = (x + 1).pow(2).toLong() } else { answer = -1 } return answer } } 제곱근이 양의 정수가 아닌 경우가 반환이 안된다. 왜 그럴까? x 는 n 을 Double 형으로 변환한 다음 구한 제곱근이고..
내 풀이 class Solution { fun solution(n: Long): ArrayList { var answer = arrayListOf() var x = n while(x > 0){ var a :Int = (x % 10).toInt() answer.add(a) x /= 10 } return answer } } 다른 사람 풀이 class Solution { fun solution(n: Long): IntArray { return n.toString().reversed().map { it.toString().toInt() }.toIntArray() } } 처음 보는 것들이 나왔다. .reversed() .map{} : 각 원소를 원하는 형태로 변환해서 새 컬렉션을 만든다. n.toString()...
class Solution { fun solution(x: Int, n: Int): mutableListOf { var answer = mutableListOf() var a = x while(answer.size != n){ answer.add(a) a += a } return answer } } 이렇게 했더니 리스트에서 자꾸 오류가 뜬다. error: unresolved reference: mutableListOf fun solution(x: Int, n: Int): mutableListOf class Solution { fun solution(x: Int, n: Int): MutableList { var answer = mutableListOf() var a = x while(answer.size ..
실패한 풀이 n을 나눠서 나머지가 1인 동시에 3보다 크거나 같은 값들을 임의의 리스트에 집어넣고 그 리스트의 첫번째 값을 리턴했더니 정답률 80퍼... 생각해보니 나머지가 1인 나오는 가장 작은 자연수라 했으니 굳이 리스트에 다 집어넣어서 그 첫번째 값을 빼낼 필요가 없다. 어차피 for 문은 범위 내에서 작은 값부터 차례차례 대입하니 만족하는 값이 나오기만 하면 바로 반복문을 빠져나오면 되잖아 i의 범위를 왜 3부터 시작하도록 만들었을까 n의 범위로 착각하고 실수로 집어넣은 것 같다. 마찬가지로 i 는 3보다 크거나 같을 필요가 없다. 그건 n 의 제한사항이다. 두번째 풀이 class Solution { fun solution(n: Int): Int { var answer: Int = 0 for (i..
약수를 모두 더한 값 약수를 어떻게 구하지? for문에 넣어서 1 * n, 2 * n-1 요고 돌릴 수가 있나? class Solution { fun solution(n: Int): Int { var answer = 0 for ( i in 1 until n+1) { var num = 0 if ( i * (n-num) == n){ answer = answer + i+(n-num) num += 1 } else { num += 1 } } return answer } } 만들었다. 케스트 케이스 일부만 통과했다. 약수는 양쪽끝에서 나란히 줄어들고 커지는게 아니니깐...^^.... 다른사람 풀이 나눌 수 있는 수 구하기..^^ filter 함수, sum 함수가 또 나왔다. 이제 기억할 것!! 범위.filter{조..