#12932
🎄 Question ?
https://school.programmers.co.kr/learn/courses/30/lessons/12932
class Solution {
fun solution(s: String): Int {
var answer = 0
return answer
}
}
🧩 Thought Process
- 각 숫자를 배열로 바꾸기
- CharArray로 바꾸기 - 이 문제도 mutableList로 바꾸어 주기 (리스트 수정을 위해)
- 배열의 순서를 뒤바꾸기
🎀 Answer
풀이 #1 (내 풀이)
class Solution {
fun solution(n: Long): Array<Int> {
var answer = intArrayOf()
val list: MutableList<Int> = answer.toMutableList()
var nString = n.toString()
var nCharArray = nString.toCharArray()
var arraySize = nCharArray.size
for (i in 0 until arraySize) {
list.add(nCharArray[arraySize-1-i].digitToInt())
}
return list.toTypedArray()
}
}
풀이 #2
class Solution {
fun solution(n: Long): IntArray {
var answer = intArrayOf()
n.toString().map {
answer += (it.toInt() - '0'.toInt())
}
return answer
}
}
https://velog.io/@nayeon/Array%EC%9D%98-map-filter-reduce-forEach-%EB%A9%94%EC%86%8C%EB%93%9C
맵은 컬렉션에 있는 맵이 아니고 함수이다. 앞에 있는 배열의 값을 it이라는 값에 대입해서 계산해주는 함수라고 보면 될거 같다.
it.toInt()에서 '0'.toInt()를 왜 빼주는 건지 이해가 되지 않았었는데 팀 멤버분께서 친절히 설명해 주셨다
3을 출력하고 싶으면 3의 아스키코드값에서 0의 아스키 코드값을 빼주면 3이 나오게 된다!
풀이 #3
class Solution {
fun solution(n: Long): IntArray =
n.toString().reversed().map { it.toString().toInt() }.toIntArray()
}
얘는 toString를통해 charArray로 바뀐 배열의 앞뒤 순서를 바꾸어주고 매핑을 해주는 것 같다. 여기서는 왜 아스키코드를 고려하지 않을까... (이건 나중에 또 확인해봐야겠다.)
🎁 Result
🏆 Comment
https://dailycoding24k.tistory.com/27
https://dailycoding24k.tistory.com/21
위 두 문제에서 공부한 내용을 종합적으로 이용해서 문제 풀이를 했다. 다른 풀이도 고민해 볼 필요가 있는 것 같다.
'Kotlin > Programmers Algorithm' 카테고리의 다른 글
[프로그래머스 - 코틀린] 정수 제곱근 판별 #12934 (0) | 2023.10.22 |
---|---|
[프로그래머스 - 코틀린] 문자열을 정수로 바꾸기 #12925 (0) | 2023.10.21 |
[프로그래머스 - 코틀린] x만큼 간격이 있는 n개의 숫자 #12954 (0) | 2023.10.21 |
[프로그래머스 - 코틀린] 나머지가 1이 되는 수 찾기 #87389 (0) | 2023.10.20 |
[프로그래머스 - 코틀린] 약수의 합 #12928 (0) | 2023.10.20 |