알고리즘 공부

[프로그래머스] 모의고사 - java

철매존 2021. 5. 2. 17:28
728x90
반응형

문제 설명

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. 이를 출력하면 오름차순 출력이 가능할 것이다.

 

코드

반응형