문제 설명
1. 수포자가 3명 있으며, 각각의 수포자는 다른 찍기 과정을 거친다.
- 1번 수포자 : 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2.....
- 2번 수포자 : 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3......
- 3번 수포자 : 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3.....
2. 가장 많은 문제를 맞힌 수포자를 찾아서 return한다.
3. 가장 높은 점수를 받은 사람이 여럿인 경우, 오름차순 정렬한다.
풀이 과정
1. 학생들의 문제 풀이 방법은 정해져 있다.
2. 미리 각각의 학생들의 문제 풀이 방법을 미리 배열에 담아 둔다.
3. 문제 수에 따라서 for문을 진행시키는데, for문의 인자를 학생들의 풀이 방식의 길이로 나누면 학생별 풀이 방식을 바로 구할 수 있다.
ex ) 1번 수포자의 정답 패턴 ( 1, 2, 3, 4, 5 ) ->5개
2번 수포자의 정답 패턴 ( 2, 1, 2, 3, 2, 4, 2, 5) -> 8개
3번 수포자의 정답 패턴 ( 3, 3, 1, 1, 2, 2, 4, 4, 5, ,5 ) -> 10개
문제의 개수가 만약 19개라고 치면, 이를 ( 19%5 ), ( 19%8 ), ( 19&10 ) 이렇게 진행하면 수포자별 패턴별로 진행 가능하다.
4. 이렇게 해서 구한 방법 중 가장 큰 값을 구해서 그 큰 값에 해당하는 수포자를 1, 2, 3순서대로 비교하여 넣는다.
5. 이를 출력하면 오름차순 출력이 가능할 것이다.
코드
'알고리즘 공부' 카테고리의 다른 글
[프로그래머스] 프린터 - java (0) | 2021.05.02 |
---|---|
[프로그래머스] 체육복 - java (0) | 2021.05.02 |
[백준 1987번] 알파벳 - java (0) | 2021.05.02 |
[백준 2607번] 비슷한 단어 - java (2) | 2021.05.01 |
[프로그래머스] 완주하기 못한 선수 - java (0) | 2021.05.01 |