![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bsnQCR/btsHcSSYh5P/6RHlegdUjtXBF1OdKYwzIK/img.gif)
코드카타 3진법 뒤집기 문제 정답class Solution { fun solution(n: Int): Int { return n.toString(3).reversed().toInt(3) }}n을 3진수 문자열로 변환해 뒤집고 다시 10진수 정수로 변환한다. 진수변환// 10진수 -> n진수n.toString(n)// n진수 -> 10진수n.toInt(n)문자열 변환 함수에서 인자값(int)을 주면 10진수를 n진수로 변환해주고정수 변환 함수에서 인자값(int)를 주면 n진수를 10진수로 변환해준다. BMI 계산기 특정 위젯을 변수에 저장하기val heightEditText = findViewById(R.id.et_height)val weightEditText = findVie..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/BdxPJ/btsG6LHDrXJ/XrcrmFJGEBzAhe3DobA48K/img.png)
코트카타 직사각형 별찍기 문제 정답fun main(args: Array) { val (n, m) = readLine()!!.split(' ').map(String::toInt) for(i in 1..m){ for(j in 1..n){ print('*') } println() }}2중 for문을 활용해서 풀 수 있는 문제이다. n(가로 길이)만큼 반복해서 별을 출력한 뒤 반복문이 끝나면개행을 하는것을 m(세로 길이)만큼 반복하면 된다. 다른 풀이fun main(args: Array) { val (n, m) = readln().split(' ').map { it.toInt() } repeat(m) { repe..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bGbSPy/btsG6ZxNfDR/FOCg3LguHGqmEnAFdqW22k/img.png)
코드카타 문자열 내림차순으로 배치하기 문제 정답class Solution { fun solution(s: String): String { return s.toCharArray().sortedDescending().joinToString("") }}배열의 요소를 내림차순으로 정렬하는 함수 sortedDescending()을 활용하면 된다. 부족한 금액 계산하기 문제 정답class Solution { fun solution(price: Int, money: Int, count: Int): Long { var m: Long = money.toLong() for (i in 1..count) { m -= price * i ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cKwlWi/btsG5A5TLMm/mq9rYsRkR8VuZtbVwV4cl1/img.png)
코드카타 가운데 글자 가져오기 문제 정답class Solution { fun solution(s: String): String { val n = s.length if (n % 2 != 0) return s[n / 2].toString(); return s[n / 2 - 1].toString() + s[n / 2].toString(); }}정수의 나눗셈은 소수점 이하를 버린 결과를 반환한다. (5 / 2 > 2) s[n]의 자료형은 char에 해당하고 solution함수는 String형을 반환하므로 반환값을 String형으로 다 바꿔줘야 한다. // 짝수 길이의 문자열에서 중간 두 문자 추출s.substring(n / 2 - 1, n / 2 + 1)subS..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/BwI6h/btsG1id57dn/gCOeGSkCCeBBKwZBc8Hlek/img.png)
코드카타 음양 더하기 문제 정답class Solution { fun solution(absolutes: IntArray, signs: BooleanArray): Int { var res: Int = 0 for(i in 0 until absolutes.size){ if(signs[i]) res += absolutes[i] else res += absolutes[i] * -1 } return res }}for문 돌려서 해결하며 되는 문제이다. 0 until absolutes.size배열은 0번지 부터 시작하므로 (0 ~ 배열크기 - 1)의 범위로 for문을 돌려야한다. 핸드폰 번호 가리기 문제 정답c..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bERnXG/btsGTFaEXYK/SKTlBJMeghW7tmFr3XJh51/img.png)
코드카타 하샤드 수 문제 정답class Solution { fun solution(x: Int): Boolean { val sum = x.toString().map { it - '0' }.sum() return x % sum == 0 }}x를 문자열로 변환한 뒤 각 자릿수를 더한 값인 sum을 선언한다.x가 sum으로 나누어 떨어지는지를 판별하는 조건식을 반환한다. Boolean타입을 반환하는 함수에서 조건식을 반환하게 되면조건식이 참일 때는 true, 아닐 때는 false를 반환하게 된다. 두 정수 사이의 합 문제 정답class Solution { fun solution(a: Int, b: Int): Long { var n: Long = 0 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/xwQmY/btsGVgNhhyj/cyCKHMaUQdKE5bsmtR7k5k/img.png)
코드카타 나머지가 1이 되는 수 찾기 문제 정답class Solution { fun solution(n: Int): Int { for(i in 2..n){ if(n % i == 1) return i; } return 1; }}나머지가 1이 되도록 하는 가장 작은 자연수를 구해야하므로2 ~ n의 범위를 for문을 돌려 부터 시작 조건에 맞는 값을 반환하도록 한다. 전날에는 if문에도 중괄호를 씌웠는데 다른 언어와 마찬가지로if문의 중괄호에 들어가는 값이 1줄이라면 저런식으로 줄여서 쓸 수 있다. 컴파일러 조건 만족 return 1 은 이론적으로 도달할 수 없는 코드이지만모든 경로의 반환값을 요구하는 코틀린 컴파일러의 조건을 만족시키기 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ceEq2f/btsGO8RnAET/DJwtxnD8PrHioAxgDk6qtk/img.png)
코드카타 각도기 문제 정답class Solution { fun solution(angle: Int): Int { return when { angle 1 // 예각 angle == 90 -> 2 // 직각 angle 3 // 둔각 angle == 180 -> 4 // 평각 else -> -1 // 180도를 초과하는 경우는 정의되지 않음 } }}when 함수를 이용해 angle값에 따라문제조건에 맞는 숫자를 반환하도록 했다. when 함수when (변수) { case1 -> 동작1 case2 -> 동작2 else -> 동작3 }when..