티스토리 뷰
반응형
문제
조건
입출력 예제
솔루션
- 각 학생의 점수를 담을 배열인 score, 답을 저장할 answer, 그리고 가장 많이 맞춘 문제 수를 저장 할 max를 선언한다.
- pt2, pt3는 2번, 3번 학생이 답을 맞추는 패턴을 저장한 배열이다.
- 먼저 score 배열을 0으로 초기화 한다.
- 문제 갯수만큼 반복문을 수행한다.
- 1번 학생이 답을 맞췄는지 확인한다. 1번 학생은 순차대로 1, 2, 3, 4, 5번을 선택함으로 따로 배열을 만들 필요없이 비교하면 된다. 수식은 i % 5 + 1 인데, 5개를 주기로 패턴이 반복되며 답은 1 ~ 5 까지이므로 + 1을 해준다.
- 답안을 비교한 점수와 max를 비교하여 갱신한다.
- 2번 학생이 답을 맞췄는지 비교한다. 2번 학생은 2, 1, 2, 3, 2, 4, 2, 5 패턴으로 답을 선택하므로 짝수 번째는 2, 홀수 번째는 수식 i % 8 / 2 으로 된다. 8번을 주기로 돌며, i = 1, 3, 5, 7일 때, 수식에 집어넣으면 각각 0, 1, 2, 3이 나온다.
- 마찬가지로 답안을 비교한 점수와 max를 비교하여 갱신한다.
- 3번 학생이 답을 맞췄는지 비교한다. 3번 학생은 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 패턴이고, 10번을 주기로 돌며, 짝수번째와 홀수번째의 패턴은 동일하다. 따라서 수식 i % 10 / 2가 될 것이다.
- 위와 마찬자기로 max를 갱신한다.
- 이제 가장 많이 맞춘 문제 갯수인 max와 동일한 점수를 비교하고 그 인덱스를 순서대로 answer에 집어 넣는다.
- 문제를 가장 많이 맞춘 사람이 한 명 또는 두 명인 경우, 배열의 값 0을 제외하고 출력을 해야 하므로 람다 (i -> i != 0) 와 함께 filter를 사용한다.
Code
- 전체 코드 : https://github.com/SubAkBa/Algorithm_Chung_Son/blob/master/Programmers/Solution_mocktest.java
결과
반응형
'Algorithm > Solution' 카테고리의 다른 글
[프로그래머스] - 카카오프렌즈 컬러링북 (0) | 2019.11.28 |
---|---|
[프로그래머스] - 주식가격 (0) | 2019.11.27 |
[프로그래머스] - 탑 (0) | 2019.11.27 |
[프로그래머스] - 캐시 (0) | 2019.11.26 |
[프로그래머스] - 프린터 (0) | 2019.11.25 |
댓글