Algorithm/BruteForce

[프로그래머스 Lv.1] 모의고사

킹우현 2023. 9. 29. 18:41

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(answers):
    answer = []
    def method_1(answers):
        inputs = [1,2,3,4,5]*(10000//5 + 1)
        result = [1 for i,value in enumerate(answers) if answers[i] == inputs[i]]
        return sum(result)
    
    def method_2(answers):
        inputs = [2,1,2,3,2,4,2,5]*(10000//8 + 1)
        result = [1 for i,value in enumerate(answers) if answers[i] == inputs[i]]
        return sum(result)
    
    def method_3(answers):
        inputs = [3,3,1,1,2,2,4,4,5,5]*(10000//10 + 1)
        result = [1 for i,value in enumerate(answers) if answers[i] == inputs[i]]
        return sum(result)
    
    answer.append((1, method_1(answers)))
    answer.append((2, method_2(answers)))
    answer.append((3, method_3(answers)))
    
    highest = max([x[1] for x in answer])
    answer = [x[0] for x in answer if x[1]==highest]
    
    return answer

이번 문제는 1, 2, 3번 수포자가 찍는 방식대로 문제를 찍었을 때, 실제 답과 비교하여 가장 높은 점수를 받은 사람을 구하는 문제이다.

 

각 수포자 별로 점수를 계산하는 함수를 선언하여 간단하게 풀이하였다 :)

'Algorithm > BruteForce' 카테고리의 다른 글

[백준 1018번] 체스판 다시 칠하기  (0) 2023.10.18
[백준 2798번] 블랙잭  (0) 2023.10.18
[프로그래머스 Lv.1] 최소직사각형  (0) 2023.09.28
[백준 1476번] 날짜 계산  (0) 2023.05.04
[백준 1107번] 리모컨  (0) 2023.05.03