반응형
86051번
https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=java
풀이
📌numbers의 요소는 중복되지 않는다.
📌numbers에 1~9까지 모든 요소가 있다고 가정할 때 그 요소의 합은 45이다.
이 두 가지 핵심을 이용하면 쉽게 풀 수 있습니다.
📝풀이1
public int solution2(int[] numbers) {
int answer = 45;
for(int num : numbers) {
answer -= num;
}
return answer;
}
1~9를 모두 더한 수는 45입니다.
45에서 numbers에 존재하는 모든 수를 빼면 1~9 중 존재하지 않는 수들의 합을 구할 수 있습니다.
📌테스트 케이스 처리속도: 0.01ms
📝풀이2
public int solution(int[] numbers) {
int answer = 0;
for(int i=1; i<=9; i++) {
boolean isContain = false;
for(int j=0; j<numbers.length; j++) {
if(i == numbers[j]) {
isContain = true;
break;
}
}
if(!isContain) answer += i;
}
return answer;
}
직접 순회하며 검색하는 방식으로도 풀어봤습니다.
처리속도는 조금 느려졌지만 이 방법은 어떤 수가 비었는지도 알아낼 수는 있습니다. (물론 필요없지만...)
📌테스트 케이스 처리속도: 0.02ms
반응형
'Algorithm > Java' 카테고리의 다른 글
프로그래머스 - 신규 아이디 추천 java :: 2021 KAKAO BLIND RECRUITMENT :: 72410 (0) | 2022.07.08 |
---|---|
프로그래머스 - 크레인 인형뽑기 게임 java :: 2019 카카오 개발자 겨울 인턴십 :: 64061 (0) | 2022.07.07 |
프로그래머스 - 음양 더하기 java :: 월간 코드 챌린지 시즌2 (0) | 2022.07.06 |
프로그래머스 - 소수 만들기 java :: Summer/Winter Coding(~2018) :: 12977 (0) | 2022.07.06 |
프로그래머스 - 내적 java :: 월간 코드 챌린지 시즌1 (0) | 2022.07.06 |