코테
[Java] 없는 숫자 더하기
zenna
2024. 4. 8. 21:31
728x90
점수 : 1134 (+1)
테스트케이스 최대 소요시간 : 0.55ms, 72.6MB
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
제출답안
import java.util.*;
class Solution {
public int solution(int[] numbers) {
int answer = 0;
int index = 0;
Arrays.sort(numbers);
for(int i=0;i<10;i++){
if(numbers.length<=index || i != numbers[index]){
answer+=i;
}else{
index++;
}
}
return answer;
}
}
문제해설
import java.util.*;
class Solution {
public int solution(int[] numbers) {
int answer = 0; // 리턴할 합계값
int index = 0; // numbers의 확인중인 인덱스 번호
Arrays.sort(numbers); // 정렬
for(int i=0;i<10;i++){ // 0~9 실행
// index가 numbers의 범위를 벗어났거나, i 가 배열에 없는 경우 answer에 합산
if(numbers.length<=index || i != numbers[index]){
answer+=i;
}else{ // 값이 배열에 있다면 index를 증가
index++;
}
}
return answer;
}
}
아예 발상의 전환으로 0에서 9까지를 전부 더한 45에서 배열의 값들을 전부 빼버린 사람이 있었다.
문제를 정말 정확하게..파악한듯.
그리고 Stream을 잘 활용한 예도 눈에 띄었다.
IntStream.range(0, 10).filter(i ->
Arrays.stream(numbers).noneMatch(num -> i == num)
).sum();
#99클럽 #99일지 #코딩테스트 #개발자스터디 #항해 #TIL
728x90