이번 문제의 해결은, 7이 몇개 있는지 확인하는 방법을 아는지 모르는지 라고 생각한다.
- 배열안의 원소가 정수형이므로, 문자열로 바꾸어 특정 문자('7')가 포함되었는지 확인한다.
나는 조건에 일치하는 원소의 개수를 반환하는 count 를 활용하였다.
class Solution {
fun solution(array: IntArray): Int {
var answer: Int = 0
for (num in array) {
answer += num.toString().count { it == '7' }
}
return answer
}
}
이 코드는 좀 더 간결하게 리팩토링 할 수 있다.
class Solution {
fun solution(array: IntArray): Int = array.sumOf { it.toString().count { string -> string == '7' }
}
}
sumOf 를 사용하여, 배열의 합을 반환한다.
그리고 다른 사람의 풀이를 보고 내가 놓쳤던 내가 아차 싶었다. 문제를 해결하는데 핵심은 특정 문자('7')가 포함되었는지 확인 하는 것인데 나는 이를 위해 각 원소들을 문자열로 변환 후에 확인을 했다.
하지만 array를 문자열로 합치는(joinToString()) 을 사용하면, 한번에 모든 원소를 문자열로 바꾸고, 특정문자가 포함된 것을 확인하면 되는 것이었다.
class Solution {
fun solution(array: IntArray)= array.joinToString("").count{ it == '7' }
}
728x90
'개인공부 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 외계어 사전 (Kotlin) (0) | 2023.07.24 |
---|---|
프로그래머스 - 문자열 정렬하기(2) (Kotlin) (0) | 2023.07.24 |
프로그래머스 - 잘라서 배열로 저장하기 (Kotlin) (0) | 2023.07.24 |
프로그래머스 - 문자열 밀기 (Kotlin) (0) | 2023.07.23 |
프로그래머스 - 종이 자르기 (Kotlin) (0) | 2023.07.23 |