-
[Java] 프로그래머스 - 모의고사Java 2024. 10. 23. 22:21
오랜만에 푸니까 그냥 바보가 됐다...
https://school.programmers.co.kr/learn/courses/30/lessons/42840
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
마지막에 return 할 때 list에 그냥 막 갖다 넣고, max인 값이랑 같은 값 출력하려고 하니까 [1] 이 아니라 [1, 0, 0] 이 나와서 한참을 봤다...똥몽총이 ㅠㅡㅠ
우선 로직은
1. 3사람이 일정하게 규칙이 있으니 그거대로 배열을 만든다
2. answers을 돌면서 정답을 세주는데, i는 반복이 되니까 %를 활용해준다.
3. 그리고 최대 점수 구하고
4. 그 최대 점수랑 같으면 list에 해당 번호를 넣어준다
5. 배열 선언해서 list 넣어주면 끝
import java.util.*; import java.io.*; class Solution { public int[] solution(int[] answers) { // 가장 높은 점수를 받은 사람 return // 여럿이면 return 하는 값 오름차순 정렬 int[] s1 = {1, 2, 3, 4, 5}; int[] s2 = {2, 1, 2, 3, 2, 4, 2, 5}; int[] s3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}; int s1N=0, s2N=0, s3N=0; for(int i=0;i<answers.length;i++) { if(s1[i%5]==answers[i]) s1N++; if(s2[i%8]==answers[i]) s2N++; if(s3[i%10]==answers[i]) s3N++; } // 최대 점수 구하기 int max = Math.max(s1N, Math.max(s2N, s3N)); List<Integer> list = new ArrayList<>(); if(max==s1N) list.add(1); if(max==s2N) list.add(2); if(max==s3N) list.add(3); int[] ans = new int[list.size()]; for(int i=0;i<list.size();i++) { ans[i] = list.get(i); } return ans; } }
'Java' 카테고리의 다른 글
[Java] 프로그래머스 - 최소 직사각형 (0) 2024.10.23 [JAVA] 4013번 : 특이한 자석 (SWEA) & 14891번 : 톱니바퀴 (BOJ) (0) 2024.05.11 [Java] 메모리 구조 (1) 2024.01.27 [JAVA] 숫자와 문자 (0) 2024.01.02 [JAVA] 언어소개 & 프로그램 동작 (2) 2024.01.02