반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Java
- 코틀린
- microtask queue
- 플러터
- Android
- 싱글톤
- Singleton
- 자료구조
- 플러터 동작
- IOS
- linebreak
- Kotlin
- 거리알고리즘
- element tree
- Lazy
- 알고리즘
- 초기화
- 비동기 처리
- dfs
- zwj
- 자바
- 앱아이콘 변경
- 프로그래머스
- Render object tree
- Event Loop
- 재귀
- flutter
- 완전탐색
- 에러
- dart
Archives
- Today
- Total
모바일 개발하는 자바리안의 메모장
자바(JAVA) - 모의고사(Programmers : 42840) 본문
반응형
https://programmers.co.kr/learn/courses/30/lessons/42840
코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
단순한 완전탐색 문제.
정해진 학생 수 + 반복되는 패턴을 배열로 만들어 쉽게 정답을 찾을 수 있었다.
실행 순서는 다음과 같다 :
1. 3명 수포자의 반복되는 패턴, 패턴의 사이즈, 정답 개수 카운터 배열로 정의
2. Input의 각 숫자를 확인하여 정답일 경우 카운터 값 증가
3. 정답 카운터 배열에서 가장 높은 점수 확인
4. 가장 높은 점수를 획득한 수포자(들)의 번호 ArrayList에 입력
5. ArrayList에 입력된 값을 return할 Array에 입력하여 반환
<코드>
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
// 수포자 3명의 반복되는 패턴 배열로 저장
int[] spj1 = {1,2,3,4,5};
int[] spj2 = {2,1,2,3,2,4,2,5};
int[] spj3 = {3,3,1,1,2,2,4,4,5,5};
// For Loop에서 사용하기 위해 각 배열 사이즈 배열로 저장
int[] size = {spj1.length, spj2.length, spj3.length};
// 각 수포자의 정답 카운트
int[] corrCnt = new int[3];
// 정답이 일치할 경우, 정답 카운트 배열에 기록
for(int i = 0; i < answers.length; i++) {
int currAns = answers[i];
if(currAns == spj1[i % size[0]])
corrCnt[0] ++;
if(currAns == spj2[i % size[1]])
corrCnt[1] ++;
if(currAns == spj3[i % size[2]])
corrCnt[2] ++;
}
int highestScore = 0;
// 가장 높은 스코어 확인
for(int i = 0; i < 3; i++) {
if(highestScore < corrCnt[i]) {
highestScore = corrCnt[i];
}
}
// 가장 높은 점수의 수포자 번호 ArrayList에 입력
ArrayList<Integer> spjNumAl = new ArrayList<Integer>();
int highestCount = 0;
for(int i = 0; i < 3; i++) {
if(highestScore == corrCnt[i]) {
spjNumAl.add(i + 1);
}
}
// ArrayList에 담긴 정보 Array에 입력
int[] answer = new int[spjNumAl.size()];
for(int i = 0; i < spjNumAl.size(); i++) {
answer[i] = spjNumAl.get(i);
}
return answer;
}
}
반응형
'Java > Java.algorithm' 카테고리의 다른 글
자바(JAVA) - 크레인 인형뽑기 게임(Programmers : 64061) (0) | 2021.06.10 |
---|---|
자바(JAVA) - 타겟 넘버(Programmers : 43165) (0) | 2021.06.10 |
자바(JAVA) - 모두 0으로 만들기(Programmers : 76503) (0) | 2021.06.10 |
자바(JAVA) - 게임 맵 최단거리(Programmers : 1844) (0) | 2021.06.10 |
자바(JAVA) - 가장 큰 수(Programmers : 42746) (0) | 2021.06.10 |
Comments