보라코딩
프로그래머스 자바 :: 모의고사 (완전탐색) 본문
이건 푼게 아니라
책보고 아.. 이런식으로 푸는 구나
감탄한 문제...
쉬운 문제라는데...
익숙해지겠지!!
모의고사
풀이
import java.util.stream.IntStream;
public class Coding {
public int[] main(int answers[]) {
int[] corrects = new int[3]; // 세 명의 사람이 맞춘 정답 수를 저장하는 배열
int max = 0; // 가장 많은 정답을 맞힌 사람의 정답 수
// 모든 문제에 대해서 반복
for (int problem = 0; problem < answers.length; problem++) {
int answer = answers[problem]; // 현재 문제의 정답
// 세 명의 사람 각각에 대해서 반복
for (int person = 0; person < 3; person++) {
int picked = getPicked(person, problem); // 각 사람이 선택한 답
// 선택한 답과 실제 정답이 일치하는 경우
if (answer == picked) {
// 해당 사람의 정답 수를 증가시키고, 최대 정답 수를 업데이트
if (++corrects[person] > max) {
max = corrects[person];
}
}
}
}
final int maxCorrects = max; // 최대 정답 수를 최종 값으로 고정
// 최대 정답 수를 가진 사람(들)의 인덱스를 찾아서 배열로 반환
// IntStream.range(0, 3)는 0부터 2까지의 정수 스트림을 생성합니다.
// 이는 세 명의 사람을 나타내는 인덱스 0, 1, 2를 나타냅니다.
return IntStream.range(0, 3)
// filter(i -> corrects[i] == maxCorrects)는 정답 수 배열(corrects)에서
// 최대 정답 수(maxCorrects)와 일치하는 사람의 인덱스를 필터링합니다.
.filter(i -> corrects[i] == maxCorrects)
// map(i -> i + 1)는 0부터 시작하는 인덱스를 1부터 시작하도록 변환합니다.
// 이렇게 변환하는 이유는 대부분의 프로그래밍 언어에서 인덱스가 0부터 시작하지만,
// 사용자에게 보여줄 때에는 1부터 시작하는 것이 자연스럽기 때문입니다.
.map(i -> i + 1)
// toArray() 메서드는 스트림 요소를 배열로 변환하여 반환합니다.
.toArray();
}
private int getPicked(int person, int problem) {
int[] rule = RULES[person]; // 각 사람에 대한 규칙 배열
int index = problem % rule.length; // 현재 문제에 대한 인덱스 계산
return rule[index]; // 해당 사람의 선택한 답 반환
}
// 각 사람이 문제를 푸는 규칙을 정의한 배열
private static final int[][] RULES = {
{1, 2, 3, 4, 5}, // 첫 번째 사람의 규칙
{2, 1, 2, 3, 2, 4, 2, 5}, // 두 번째 사람의 규칙
{3, 3, 1, 1, 2, 2, 4, 4, 5, 5} // 세 번째 사람의 규칙
};
}
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'프로그래머스 (java)' 카테고리의 다른 글
프로그래머스 자바 :: 합성수 찾기 (1) | 2023.11.17 |
---|---|
프로그래머스 자바 :: Hash (0) | 2023.11.16 |
프로그래머스 자바 :: 음양 더하기 (0) | 2023.08.29 |
프로그래머스 자바 (콜라츠 추측 / 수박수박수박수박수박수? / 내적) (0) | 2023.08.26 |
프로그래머스 자바 ( 정수 제곱근 판별 / 나머지가 1이 되는 수 찾기 / 하샤드 수 / 핸드폰 번호 가리기 / 서울에서 김서방 찾기 ) (0) | 2023.03.09 |