카테고리 없음

[프로그래머스/Python] 모의고사

왕초보코딩러 2024. 1. 6. 23:12
728x90

문제

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

 

프로그래머스

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

programmers.co.kr

1번, 2번, 3번 수포자 중 정답 수가 가장 많은 수포자 넘버를 리턴(같으면 모두 리턴)


1번, 2번, 3번 수포자의 규칙을 구현

 

정답과 비교한 후 제일 정답 수 카운트

-> 3개짜리 리스트에 0을 저장

 

정답 수가 가장 많은 수포자 넘버 리턴

-> max(리스트)와 같으면 모두 추가

 

 

수포자 규칙 구현 방법 및 정답과 비교하여 카운트

-리스트 사용

def solution(answers):
    num1 = [1,2,3,4,5]
    num2 = [2,1,2,3,2,4,2,5]
    num3 = [3,3,1,1,2,2,4,4,5,5]
    
    right = [0,0,0]
    
    for idx, ans in enumerate(answers):
        if int(num1[idx%len(num1)]) == ans:
             right[0] += 1
        if int(num2[idx%len(num2)]) == ans:
             right[1] += 1
        if int(num3[idx%len(num3)]) == ans:
             right[2] += 1

 

 

-2차원 리스트 사용(반복문에 쓸 때 간편)

def solution(answers):
    num_list =[[1,2,3,4,5],
              [2,1,2,3,2,4,2,5],
              [3,3,1,1,2,2,4,4,5,5]]
    
    right = [0,0,0]
    
    for idx, ans in enumerate(answers):
        for i in range(3):
            if num_list[i][idx%len(num_list[i])] == ans:
                right[i]+=1

 


정답 수가 가장 많은 수포자 넘버 리턴

-append 사용

answer = []
for i in range(3)    
	if right[i] == max(right):
    	answer.append(i+1)
return answer

 

 

-append 사용 없이 바로 리스트로 저장

return [i+1 for i in range(3) if right[i] == max(right)]

 

 

def solution(answers):
    num_list =[[1,2,3,4,5],
              [2,1,2,3,2,4,2,5],
              [3,3,1,1,2,2,4,4,5,5]]
    right = [0,0,0]
    
    for idx, ans in enumerate(answers):
        for i in range(3):
            if num_list[i][idx%len(num_list[i])] == ans:
                right[i]+=1
    return [i+1 for i in range(3) if right[i] == max(right)]

 

 

<참고>

인덱스와 요소를 한 번에 받을 수 있는 enumerate 사용하기

https://www.daleseo.com/python-enumerate/

 

파이썬의 enumerate() 내장 함수로 for 루프 돌리기

Engineering Blog by Dale Seo

www.daleseo.com

 

for if-else문을 사용하여 리스트 만들기

https://ychaeeun.github.io/python/python-for-if-oneline/

 

python for if-else 한줄에 작성하기

[for 한줄로 작성하기]

ychaeeun.github.io