# 문제
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
# 제한조건
n은 10,000,000,000이하인 자연수입니다.
# 입출력 예
n = 12345 , return = [5,4,3,2,1]
# 풀이
class Solution {
fun solution(n: Long): IntArray {
var num : Long = n
var answer = ArrayList<Int>()
while (num > 0 ) {
answer.add((num%10).toInt())
num = num/10
}
return answer.toIntArray()
}
}
일단 answer 이라는 빈 리스트를 만들어놓고,
num이 0보다 크면 해당 코드를 실행한다
num이 123 이라고 가정해보자
0보다 크니깐 123%10 = 3 을 answer리스트에 추가해준다
그리고 123/10= 12를 num에 넣어준다
num=12니깐 12를 다시 12%10해서 나온 2를 answer리스트에 추가해주고
12/10= 1을 num에 넣어준다
num=1 이니깐 , 1%10=1 을해서 나온 1을 answer리스트에 추가해주고
1/10=0 이므로 num이 0이되기때문에 반복문을 빠져나온다
따라서 answer에는 [3,2,1]이 들어가게 된다
# 다른사람 풀이
class Solution {
fun solution(n: Long): IntArray {
return n.toString().reversed().map { it.toString().toInt() }.toIntArray()
}
}
class Solution {
fun solution(n: Long): IntArray {
return n.toString()
.reversed()
.split("")
.filter { it != "" }
.map { it.toInt() }
.toIntArray()
}
}
'Computer Science > 알고리즘' 카테고리의 다른 글
프로그래머스 알고리즘 문제[정수 제곱근 판별] (0) | 2024.03.14 |
---|---|
프로그래머스 알고리즘 문제[문자열을 정수로 바꾸기] (0) | 2024.03.11 |
프로그래머스 알고리즘 문제[x만큼 간격이 있는 n개의 숫자] (0) | 2024.03.07 |
프로그래머스 알고리즘 문제[나머지가 1이 되는 수 찾기] (0) | 2024.03.06 |
프로그래머스 알고리즘 문제[약수의 합] (0) | 2024.03.05 |