Skip to content

Commit d895069

Browse files
committed
[level 1] Title: 모의고사, Time: 96.77 ms, Memory: 86.1 MB -BaekjoonHub
1 parent 3b23b4d commit d895069

2 files changed

Lines changed: 122 additions & 0 deletions

File tree

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# [level 1] 모의고사 - 42840
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/42840)
4+
5+
### 성능 요약
6+
7+
메모리: 86.1 MB, 시간: 96.77 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 완전탐색
12+
13+
### 채점결과
14+
15+
정확성: 100.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2025년 05월 14일 18:32:48
20+
21+
### 문제 설명
22+
23+
<p>수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.</p>
24+
25+
<p>1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...<br>
26+
2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...<br>
27+
3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...</p>
28+
29+
<p>1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요.</p>
30+
31+
<h5>제한 조건</h5>
32+
33+
<ul>
34+
<li>시험은 최대 10,000 문제로 구성되어있습니다.</li>
35+
<li>문제의 정답은 1, 2, 3, 4, 5중 하나입니다.</li>
36+
<li>가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요.</li>
37+
</ul>
38+
39+
<h5>입출력 예</h5>
40+
<table class="table">
41+
<thead><tr>
42+
<th>answers</th>
43+
<th>return</th>
44+
</tr>
45+
</thead>
46+
<tbody><tr>
47+
<td>[1,2,3,4,5]</td>
48+
<td>[1]</td>
49+
</tr>
50+
<tr>
51+
<td>[1,3,2,4,2]</td>
52+
<td>[1,2,3]</td>
53+
</tr>
54+
</tbody>
55+
</table>
56+
<h5>입출력 예 설명</h5>
57+
58+
<p>입출력 예 #1</p>
59+
60+
<ul>
61+
<li>수포자 1은 모든 문제를 맞혔습니다.</li>
62+
<li>수포자 2는 모든 문제를 틀렸습니다.</li>
63+
<li>수포자 3은 모든 문제를 틀렸습니다.</li>
64+
</ul>
65+
66+
<p>따라서 가장 문제를 많이 맞힌 사람은 수포자 1입니다.</p>
67+
68+
<p>입출력 예 #2</p>
69+
70+
<ul>
71+
<li>모든 사람이 2문제씩을 맞췄습니다.</li>
72+
</ul>
73+
74+
75+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import java.util.*;
2+
3+
class Solution {
4+
static int[] first = {1,2,3,4,5};
5+
static int[] second = {2,1,2,3,2,4,2,5};
6+
static int[] third = {3,3,1,1,2,2,4,4,5,5};
7+
8+
static List<Integer> al = new ArrayList<>();
9+
10+
public Integer[] solution(int[] answers) {
11+
12+
int first_cnt = calc(first, answers);
13+
int second_cnt = calc(second, answers);
14+
int third_cnt = calc(third, answers);
15+
16+
int max = Math.max(first_cnt,second_cnt);
17+
max = Math.max(max, third_cnt);
18+
19+
if(first_cnt == max){
20+
al.add(1);
21+
}
22+
if(second_cnt == max){
23+
al.add(2);
24+
}
25+
if(third_cnt == max){
26+
al.add(3);
27+
}
28+
29+
Integer[] answer = new Integer[al.size()];
30+
31+
return al.toArray(answer);
32+
}
33+
34+
int calc(int[] a, int[] b){
35+
int cnt = 0;
36+
37+
for(int i=0; i<b.length; i++){
38+
System.out.println(b[i] + " " + a[i%a.length]);
39+
40+
if(b[i] == a[i%a.length]){
41+
cnt++;
42+
}
43+
}
44+
return cnt;
45+
46+
}
47+
}

0 commit comments

Comments
 (0)