🗒 문제


📝 나의 문제풀이
class Solution {
fun solution(i: Int, j: Int, k: Int): Int {
return (i..j)
.map { it.toString() } // 숫자 → 문자열
.sumOf { numberString -> // 각 숫자마다
numberString.count { // 글자 하나씩 검사
it == k.toString()[0] // '1'
}
}
}
}
📝 다른 사람의 문제 풀이
다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.
class Solution {
fun solution(i: Int, j: Int, k: Int): Int = (i..j).joinToString("").count { it.digitToInt() == k }
}
🖊 문제 풀이 시 알면 좋을 것
sumOf
- 개념: 컬렉션의 각 요소를 숫자로 변환한 뒤 합계를 구함
- 리턴 타입: Int, Long 등 숫자
- 언제 사용: 단순 반복문 없이 컬렉션의 합을 구하고 싶을 때
val numbers = listOf(1, 2, 3)
val total = numbers.sumOf { it * 2 } // 12
문자열 + 숫자 예시:
val strs = listOf("11", "23")
val sum = strs.sumOf { it.toInt() } // 11 + 23 = 34
count
- 개념: 컬렉션 또는 문자열에서 조건에 맞는 요소의 개수를 세는 함수
- 리턴 타입: Int
- 언제 사용: 특정 조건의 등장 횟수를 알고 싶을 때
val numbers = listOf(1, 2, 3, 1)
val cnt = numbers.count { it == 1 } // 2
문자열 예시:
val str = "1123"
val cnt1 = str.count { it == '1' } // 2
digitToInt
- 개념: Char 타입 숫자 → Int로 변환
- 리턴 타입: Int
- 언제 사용: 문자열의 숫자를 실제 숫자로 계산할 때
val ch = '7'
val num = ch.digitToInt() // 7
(1..4).joinToString("")
- 1..4 → IntRange 객체 [1, 2, 3, 4] 생성
- joinToString("") → 리스트/범위의 각 요소를 문자열로 변환 후, 지정한 구분자("")로 연결
- 여기서 ""는 빈 문자열 → 붙여서 하나의 문자열로 만듦
val result = (1..4).joinToString("")
println(result) // 출력: "1234"
- 과정:
- 1 → "1"
- 2 → "2"
- 3 → "3"
- 4 → "4"
- 구분자 없이 연결 → "1234"
반응형
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 모스부호(1) (1) | 2025.12.23 |
|---|---|
| [프로그래머스] 7의 개수 (0) | 2025.12.22 |
| [프로그래머스] 2차원으로 만들기 (0) | 2025.12.22 |
| [프로그래머스] 가까운 수 (0) | 2025.12.22 |
| [프로그래머스] 진료순서 정하기 (0) | 2025.12.22 |