코테 준비/프로그래머스

[level 1] 수포자

쿠쿠*_* 2023. 4. 24. 01:05

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

 

프로그래머스

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

programmers.co.kr

#level1/모의고사
def solution(answers):
    answer = []
    student_a=[1,2,3,4,5]*2000
    student_b=[2,1,2,3,2,4,2,5]*2000
    student_c=[3,3,1,1,2,2,4,4,5,5]*1000
    a=0
    b=0
    c=0
    find=0
    new_answers=answers
    for i in range(len(answers)):
        if new_answers[i]==student_a[i]:
            a+=1
        if new_answers[i]==student_b[i]:
            b+=1
        if new_answers[i]==student_c[i]:
            c+=1
    abc_list=[a,b,c]
    find=max(abc_list)

    if a==find:
        answer.append(1)
    if b==find:
        answer.append(2)
    if c==find:
        answer.append(3)

    answer.sort()
    
    
    return answer
print(solution([1,3,2,4,2]))

나는 위와 같이 풀었는데 아래와 같이 enumerate 함수를 사용해서 더 간단하게도 표현할 수 있다.

def solution(answers):
	pattern1 = [1,2,3,4,5]
    pattern2 = [2,1,2,3,2,4,2,5]
    pattern3 = [3,3,1,1,2,2,4,4,5,5]
    score = [0,0,0]
    resullt = []
    
    for idx, answer in enumerate(answers):
    	if answer == pattern1[idx%len(pattern1)]:
        	score[0] += 1
    	if answer == pattern2[idx%len(pattern2)]:
        	score[1] += 1
    	if answer == pattern3[idx%len(pattern3)]:
        	score[2] += 1   
    for idx, s in enumerate(score):
    	if s == max(score):
        	result.append(idx+1)
    return result

'코테 준비 > 프로그래머스' 카테고리의 다른 글

[level 1] 크레인 인형뽑기 게임  (0) 2023.04.24
[level 1] 체육복  (0) 2023.04.24
[level 1] K번째  (0) 2023.04.24
[level 1] 완주하지 못한 선수  (0) 2023.04.24
[level 1] [1차] 다트 게임  (0) 2023.04.23