문제 이해 a ~ b 모든 정수의 합 return 접근 answer = 0L a b a downTo b 풀이 class Solution { fun solution(a: Int, b: Int): Long { //정답을 Int -> Long 으로 변환하면 오류 난다. 처음부터 Long으로 선언 var answer = 0L if (a < b) { for (i in a..b) { answer += i } } else { for (i in a downTo b) { answer += i } } return answer } }
문제 이해 나누어 떨어지는 값 오름차순 배열 반환 나누어 떨어지는 값없으면 1 접근 foreach -> 나누어 떨어지는 값 찾기 정렬 비었을 경우 처리 풀이 class Solution { fun solution(arr: IntArray, divisor: Int): IntArray { var answer = intArrayOf() arr.forEach { if (it % divisor == 0) { answer += it } } answer.sort() if (answer.isEmpty()) { answer += -1 } return answer } } }
문제 이해 단어 s의 가운데 글자수 반환 (홀수) 짝수의 경우 가운데 두글자 반환 (짝수) 접근 짝/홀 나눈다 중간값 반환 Kotlin의 / 연산자는 소수점 나와도 Int로 리턴 풀이 class Solution { fun solution(s: String): String = s.slice((s.length - 1) / 2 .. s.length / 2) } 다른 풀이 class Solution { fun solution(s: String): String { var answer = "" if (s.length % 2 == 0) { answer = s.get((s.length / 2) - 1).toString() + s.get(s.length / 2).toString() } else { answer = s.g..
문제 이해 자연수 n 주어진다 n을 3진법 상에서 뒤집는다 이를 다시 10진법으로 표현 -> Return 접근 3진법으로 변환 뒤집기 3진법 -> 10진법으로 변환 풀이 class Solution { fun solution(n: Int): Int { return n.toString(3).reversed().toInt(3) } }
문제 이해 2016.1.1 금요일 a월 b일 무슨요일 ? a,b 입력 -> 2016.a.b 무슨요일인지 Return [ SUN,MON,TUE,WED,THU,FRI,SAT ] 실제로 있는날을 기준으로 할 것 접근 각 월이 몇일 까지 있는지 확인할것 -> 배열로 기록 Fri 가 월요일이기 때문에 1번째 위치에 배치 (한칸식 밀리기 때문에) until 을이용해 일수 전부 더한더음 7로 나눈 나머지 - > 해당요일 나온다 풀이 class Solution { fun solution(a: Int, b: Int): String { var end2016 = listOf(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) var dayOfWeek = listOf("THU", "FRI",..