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
- Number Theory
- SQL
- Data Structure
- sorting
- 파이썬
- Binary Search
- Matrix
- database
- dynamic programming
- 자바
- java
- Stack
- greedy
- Binary Tree
- two pointers
- Counting
- 코테
- bit manipulation
- array
- 코딩테스트
- Math
- 구현
- implement
- Tree
- simulation
- Class
- Method
- hash table
- geometry
- string
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.1] 모의고사 본문
1. Input
1) 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers
2) 수포자는 3명이 있다.
3) 수포자들이 번호를 찍은 방식
1번 수포자: 1, 2, 3, 4, 5 반복
2번 수포자: 2, 1, 2, 3, 2, 4, 2, 5 반복
3번 수포자: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 반복
2. Output
1) 세 명 중 가장 많은 문제를 맞힌 사람의 번호를 담은 정수 배열
3. Constraint
1) 시험은 최대 10,000 문제
2) 문제의 정답은 1, 2, 3, 4, 5중 하나
3) 가장 높은 점수를 받은 사람이 여럿일 경우, 반환하는 값을 오름차순으로 정렬 후 반환
4. Example
Input: answers={1,3,2,4,2} -> Output: {1,2,3}
설명: 모든 사람이 2문제씩 맞췄다.
5. Code
1) 첫 코드(2022/??)
int[] who;
int c1=0, c2=0, c3=0; // 맞은 개수
int[] a1 = {1,2,3,4,5};
int[] a2 = {2,1,2,3,2,4,2,5};
int[] a3 = {3,3,1,1,2,2,4,4,5,5};
for(int i=0 ; i<answers.length ; i++) {
if(answers[i] == a1[i%5]) c1++;
if(answers[i] == a2[i%8]) c2++;
if(answers[i] == a3[i%10]) c3++;
}
if(c1>c2) {
if(c1>c3) who = new int[] {1};
else if(c1==c3) who = new int[] {1,3};
else who = new int[] {3};
}
else if(c1==c2) {
if(c1>c3) who = new int[] {1,2};
else if(c1==c3) who = new int[] {1,2,3};
else who = new int[] {3};
}
else {
if(c2>c3) who = new int[] {2};
else if(c2==c3) who = new int[] {2,3};
else who = new int[] {3};
}
return who;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.1] [1차] 비밀지도 (0) | 2022.11.22 |
---|---|
[프로그래머스/Lv.1] k번째 수 (0) | 2022.11.22 |
[프로그래머스/Lv.1] 키패드 누르기 (0) | 2022.11.21 |
[프로그래머스/Lv.1] 두 개 뽑아서 더하기 (0) | 2022.11.17 |
[프로그래머스/Lv.1] 3진법 뒤집기 (0) | 2022.11.17 |