유니 코드

[PGS/프로그래머스][Lv1]없는 숫자 더하기(Kotlin) 본문

알고리즘/미분류

[PGS/프로그래머스][Lv1]없는 숫자 더하기(Kotlin)

꼬물쥰 2022. 8. 4. 21:31

https://school.programmers.co.kr/learn/courses/30/lessons/86051#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

[문제 설명]

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

 

[제한 조건]

  • 1 ≤ numbers의 길이 ≤ 9
    • 0 ≤ numbers의 모든 원소 ≤ 9
    • numbers의 모든 원소는 서로 다릅니다.

 

[입출력 예]

 

numbers result
[1,2,3,4,6,7,8,0] 14
[5,8,4,0,6,7,9] 6

 

[코드1]

class Solution {
    fun solution(numbers: IntArray): Int {
        var answer: Int = 0
        
        var temp = IntArray(10){i -> 0}
        for(i in numbers){
            temp[i] = -1
        }
        for(i in 0..9){
            if(temp[i] != -1){
                answer += i
            }
        }        
        return answer
    }
}

0으로 초기화한 배열을 생성하고 numbers에 숫자가 있으면 그 숫자를 인덱스로 하여 값을 -1로 변경해주었다

그 후 값이 -1이 아닌 숫자들만 더하면 numbers에 없는 숫자만 더하여 값을 반환한다

 

[코드2]

class Solution {
    fun solution(numbers: IntArray): Int {
        var answer = 45
        
        for(i in numbers){
            answer -= i
        }
              
        return answer
    }
}

numbers에 있는 값을 다 더한 후 0+1+...+9에서 빼주면 numbers에 없는 숫자만 더한 값과 같은 값이 나온다

Comments