티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/42840

 

알고리즘 연습 - 모의고사 | 프로그래머스

실행 결과가 여기에 표시됩니다.

programmers.co.kr

 

수포자가 찍는 패턴을 배열에 저장해서 패턴과 같으면 맞은 개수를 카운트했다.

셋 중 가장 많이 맞은 개수를 max에 담았다가 사람마다 맞은 개수가 max와 같으면 list에 담아 반환한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.*;
 
class Solution {
    public int[] solution(int[] answers) {
        List<Integer> list = new ArrayList<>();
        //맞은 개수
        int man1_cnt = 0;
        int man2_cnt = 0;
        int man3_cnt = 0
        
        int[][] supoja = {
            {12345},
            {21232425},
            {3311224455}
        };
        
        for(int i = 0; i < answers.length; i++) {
           //첫번째 수포자
            man1_cnt = answers[i] == supoja[0][i % 5] ? man1_cnt + 1 : man1_cnt;
           //두번째 수포자
            man2_cnt = answers[i] == supoja[1][i % 8] ? man2_cnt + 1 : man2_cnt;
           //세번째 수포자
            man3_cnt = answers[i] == supoja[2][i % 10] ? man3_cnt + 1 : man3_cnt;
        }
 
        int[] maxFinder = new int[3];
        maxFinder[0= man1_cnt;
        maxFinder[1= man2_cnt;
        maxFinder[2= man3_cnt;
        
        int max = 0;
        for(int cnt : maxFinder) {            
            max = max < cnt ? cnt : max;
        }
        
        for(int i = 0; i < 3; i++) {
            if(max == maxFinder[i]) {
                list.add(i+1);
            }
        }
        return list.stream().mapToInt(i->i).toArray();
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
댓글