문제 설명
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() 을 사용해서 코드를 더 간결하게 만드는게 낫지 않을까 싶다. 아니면 말고~
행위가 줄거나 과정이 줄거나
반응형
'Dev > Algorithm' 카테고리의 다른 글
간만의 알고리즘 공부 - 16 (핸드폰 번호 가리기) (0) | 2024.07.16 |
---|---|
간만의 알고리즘 공부 - 15 (제일 작은 수 제거하기) (0) | 2024.07.14 |
간만의 알고리즘 공부 - 13 (음양 더하기) (0) | 2024.07.10 |
간만의 알고리즘 공부 - 12 (귤 고르기) (1) | 2024.07.09 |
간만의 알고리즘 공부 - 11 (나머지가 1이 되는 수 찾기) (0) | 2024.07.08 |