기록을 합시다.
[프로그래머스] 모의고사(python/java) 본문
문제 요약
- 문제를 푸는 사람은 총 세 명, 각각 문제를 찍는 방법은 다르다.
- 문제의 정답을 제일 많이 맞춘 사람(사람들)의 배열이 답이다.
내가 생각한 로직
- 각각의 사람들과 정답을 비교하여, scores라는 배열에 사람들의 점수를 담는다.
- 배열의 최대값을 구하여, 사람들이 최대값을 충족하는지 확인하고, 만약 충족한다면 새 배열에 사람을 담는다.
python으로 제출한 정답
def solution(answers):
length = len(answers)
first_person_answer = [1,2,3,4,5] * 5001
second_person_answer = [2,1,2,3,2,4,2,5] * 1251
third_person_answer = [3,3,1,1,2,2,4,4,5,5] * 1001
scores = [0, 0, 0]
for i in range(0, length):
scores[0] += 1 if first_person_answer[i] == answers[i] else 0
scores[1] += 1 if second_person_answer[i] == answers[i] else 0
scores[2] += 1 if third_person_answer[i] == answers[i] else 0
great_score = max(scores)
great_scorer = [i+1 for i in range(0,3) if scores[i] == great_score]
return great_scorer
java로 제출한 정답
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[] mathGiveUpPerson1 = {1, 2, 3, 4, 5}; //5개
int[] mathGiveUpPerson2 = {2, 1, 2, 3, 2, 4, 2, 5}; //8개
int[] mathGiveUpPerson3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}; //10개
int modular1 = 0;
int modular2 = 0;
int modular3 = 0;
int[] scores = new int[3];
for(int i = 0; i < answers.length; i++){
modular1 = i%5;
modular2 = i%8;
modular3 = i%10;
if(answers[i] == mathGiveUpPerson1[modular1]){
scores[0] += 1;
}
if(answers[i] == mathGiveUpPerson2[modular2]){
scores[1] += 1;
}
if(answers[i] == mathGiveUpPerson3[modular3]){
scores[2] += 1;
}
}
int maxScore = -1;
List<Integer> answer = new ArrayList<>();
for(int j = 0; j < scores.length; j++){
if(scores[j] > maxScore){
maxScore = scores[j];
}
}
for(int k = 0; k < scores.length; k++){
if(maxScore == scores[k]){
answer.add(k+1);
}
}
int[] realAnswer = new int[answer.size()];
for(int l = 0 ; l < realAnswer.length; l++){
realAnswer[l] = answer.get(l);
}
return realAnswer;
}
}
사담
파이썬 하다가 자바로 코테 풀어보려고 하니까 조금 힘들다 ㅋㅋㅋㅋㅋㅋㅋ
'공부 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 전화번호 목록(python/java) (0) | 2023.06.22 |
---|---|
[프로그래머스] 타겟 넘버(python/java) (0) | 2023.06.12 |
[프로그래머스] 완주하지 못 한 선수 (0) | 2023.06.11 |
[프로그래머스] 최소 직사각형(python/java) (0) | 2023.06.11 |
[프로그래머스] k번째 수(python/java) (0) | 2023.06.05 |
Comments