Dev/Algorithm

간만의 알고리즘 공부 - 14 (없는 숫자 더하기)

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

제한사항
- 1 ≤ numbers의 길이 ≤ 9
    - 0 ≤ numbers의 모든 원소 ≤ 9
    - numbers의 모든 원소는 서로 다릅니다..

 

입출력 예

 

내가 푼 방법

 fun solution(absolutes: IntArray, signs: BooleanArray): Int {
    return 45 - numbers.sum()
}

 

풀었을 때 1점만 받은것 보니 그닥 잘풀지 못한듯 합니다. 어떤 방법이 더 효율적인지 궁금해서 다른 사람 코드를 봤습니다.

 

 

다른 사람 코드

 fun solution(absolutes: IntArray, signs: BooleanArray): Int {
    var answer: Int = 45

    for(i in numbers){
        answer -= i
    }

    return answer
}

 

위의 sum() 을 사용했을때는 sum()이 내부적으로 반복문을 통해서 배열을 전부 더하고 거기에 1~9까지 덧셈한 수를 뺄셈하는것 보다는 위와 같이 1~9까지의 덧셈한 수에 배열만큼 하나씩 빼게되면 최소한 전부 덧셈한 값에서 추가로 뺄 필요는 없으니 최소 1단계는 줄어든것 같다. 다만 실제 서비스 코드를 짜다보면 위와 같은 방법보다는 유지보수 하기 쉽게 for() 보다는 sum() 을 사용해서 코드를 더 간결하게 만드는게 낫지 않을까 싶다. 아니면 말고~

 

 

행위가 줄거나 과정이 줄거나
반응형