포스트

177. 자연수 뒤집어 배열로 만들기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
func solution(_ n:Int64) -> [Int] {
    
    var answer : [Int] = []
    var N : Int64 = n

    
    if N > 0 && N <= 10000000000 {
        
        for i in 1 ... n {
            
            answer.append((Int(N%10)))
            
            N = N/10
            
            if N < 1 {
                break
            }
        }
        
        
    }
    
    return answer
}

이렇게 생각한 이유. 15,16과 마찬가지로 append를 하여 배열에 입력을 하고자하였다.

그리고 최근에 풀었던 각 자리수의 합을 떠올려 나머지값으로 배열에 집어넣었다.

왜냐하면 제일 마지막수부터 인덱스의 첫번째 값으로 들어간다는건 10으로 나누었을때 나머지랑 같은 의미이기 때문이다.

그래서 N이 즉 10으로 계속 나누다가 소수점이 되었을때, 즉 더이상 나누지 않아도 될때 break를 통해 반복문을 빠져 나오게 했다.

처음에는 그냥 나머지값이 1보다 작을때 즉 위의 if문 과 비슷하게 했는데, 테스트문제는 통과하였으나, 실제로 제출했을떼 오답이길래 생각을 해보니, 실제로 중간에 0이 들어간 수에서는 break가 된다는것을 알았고, 그래서 if문에 나머지값 조건대신 실제로 나눠야하는 값을 조건문에 넣어서 해결하였다.


오늘은 속이 너무 좋지않아서 코드 문제위주로 적었다. 이번주는 좀 공부위주로 정리를 해야겠다.

그전에 건강부터

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.