728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/86491
코드
자바
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[][] nums = { { 1, 2, 3, 4, 5 }, { 2, 1, 2, 3, 2, 4, 2, 5 }, { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 } };
int[] n = { 5, 8, 10 };
int[] count = new int[3];
for (int i = 0; i < answers.length; i++) {
for (int j = 0; j < 3; j++) {
if (answers[i] == nums[j][i % n[j]])
count[j]++;
}
}
int max = 0;
for (int i = 0; i < count.length; i++) {
max = Math.max(max, count[i]);
}
ArrayList<Integer> tmp = new ArrayList<>();
for (int i = 0; i < count.length; i++) {
if (max == count[i])
tmp.add(i + 1);
}
int[] result = new int[tmp.size()];
for (int i = 0; i < result.length; i++) {
result[i] = tmp.get(i);
}
return result;
}
}
파이썬
def solution(answers):
nums = [[1, 2, 3, 4, 5], [2, 1, 2, 3, 2, 4, 2, 5], [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]
n = [5, 8, 10]
result = [0] * 3
for i, answer in enumerate(answers):
for j in range(3):
if nums[j][i % n[j]] == answer:
result[j] += 1
top = max(result)
return [i + 1 for i in range(3) if result[i] == top]
728x90
'🚩 코딩테스트 > 알고리즘' 카테고리의 다른 글
[LeetCode] 102. Binary Tree Level Order Traversal (0) | 2022.09.08 |
---|---|
[프로그래머스] 소수 찾기 (1) | 2022.09.05 |
[프로그래머스] 최소직사각형 (0) | 2022.09.05 |
[프로그래머스] 두 큐 합 같게 만들기 (0) | 2022.09.04 |
[LeetCode] 15. 3Sum (0) | 2022.08.25 |