티스토리 뷰
완전 탐색을 푸는 첫날인데, 아침부터 굉장히 마음에 드는 문구를 봤다.
네, 무식한 게 최곱니다. ㅎㅎ 가끔 무지성으로 푼 풀이가 딱 들어맞으면, 그거만큼 기분 좋은 게 없어요.
아무튼, 문제로 들어가면
수포자 1, 2, 3 의 찍는 패턴을 배열로 저장한 뒤에 인자로 받은 정답의 배열과 하나하나 비교하여, 각자 몇 문제를 맞혔는지 확인하면 되는 문제이다.
사실 완전 탐색은 말 그대로, 모든 경우의 수를 다 탐색하면 끝인 문제들이라, 효율적인 검색 방법을 찾는 것을 제외하고는 딱히 복잡하게 생각할 게 없는 거 같다.
나머지 연산과 문제를 가장 많이 맞힌 1등 수포자 여러 명일 수도 있는 경우를 생각하여 코드를 작성하면 된다.
package com.choonham;
import java.util.ArrayList;
class Solution {
public ArrayList<Integer> solution(int[] answers) {
ArrayList<Integer> answer = new ArrayList<>();
int[] su_1 = {1, 2, 3, 4, 5};
int[] su_2 = {2, 1, 2, 3, 2, 4, 2, 5};
int[] su_3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int[] su_counts = new int[3];
for(int i = 0; i < answers.length; i++) {
int mod = i % su_1.length;
if(su_1[mod] == answers[i]) {
su_counts[0]++;
}
mod = i % su_2.length;
if(su_2[mod] == answers[i]) {
su_counts[1]++;
}
mod = i % su_3.length;
if(su_3[mod] == answers[i]) {
su_counts[2]++;
}
}
int max = 0;
for(int i = 0; i < su_counts.length; i++) {
if(su_counts[i] >= max) max = su_counts[i];
}
for(int i = 0; i < su_counts.length; i++) {
if(su_counts[i] == max) answer.add(i+1);
}
return answer;
}
}
뭐...LV1인 만큼 딱히 어려울 거 없이 풀 수 있다. 아마 런타임 에러가 나오시는 분들은 모듈러 연산 쪽의 연산을 잘못했을 확률이 크므로, 정답 배열을 10개 이상으로 늘려서 확인하면, 어떤 부분이 문제인 지 알 수 있을 것이다.
끝!!
반응형
'[JAVA] > Programmers' 카테고리의 다른 글
[JAVA] Programmers <완전 탐색 LV2> 카펫 (0) | 2021.04.06 |
---|---|
[JAVA] Programmers <완전 탐색 LV2> 소수 찾기 (0) | 2021.04.05 |
[JAVA] Programmers <Sort LV2> H - index (0) | 2021.04.03 |
[JAVA] Programmers <Sort LV2> 가장 큰 수 (0) | 2021.04.02 |
[JAVA] Programmers <Sort LV1> K번째 수 (0) | 2021.04.01 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- 인천 구월동 맛집
- 파니노구스토
- Async
- redux-thunk
- react
- 이탈리안 레스토랑
- react-native
- redux
- 인천 구월동 이탈리안 맛집
- Promise
- AsyncStorage
- 맛집
- await
- 정보보안기사 #실기 #정리
- javascript
- Total
- Today
- Yesterday