wn42
코딩이랑 이것저것
wn42
전체 방문자
오늘
어제
  • 분류 전체보기 (113)
    • 프로그래머스 (23)
      • LV1 (11)
      • LV2 (1)
      • LV3 (3)
      • 연습 (8)
    • 딥러닝 공부 (0)
      • 머신러닝&딥러닝 이론 (0)
    • 임베디드 (17)
      • Adventure Design (1)
      • 센서기반모바일로봇 (5)
      • ROS (9)
      • Google Coral (2)
    • C++ (38)
      • C++ 기초 (34)
      • 자료구조 및 알고리즘 (4)
    • Python (14)
      • 기본 파이썬 문법 (6)
      • Python 기초 (8)
    • 빅데이터 (9)
      • 빅데이터 첫걸음 시작하기(국비지원) (5)
      • 빅데이터 공부 (4)
    • 알고리즘 공부 (2)
      • 기본 알고리즘 (2)
    • 전자공학 (10)
      • 반도체 공정 (3)
      • 무선데이터통신 (7)
      • 반도체공학 (0)
    • C# (0)
      • C# 기본 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • K디지털크레딧
  • 클래스
  • Python
  • 바이트디그리
  • 인스턴스
  • 빅데이터
  • c++
  • 파이썬
  • 노드
  • 조건문
  • 빅데이터 첫걸음 시작하기
  • numpy
  • 상속
  • google coral
  • 스택/큐
  • 패스트캠퍼스
  • Queue
  • 프로그래머스
  • 소멸자
  • 데이터분석
  • 스택
  • ROS
  • 정렬
  • 반복문
  • 내일배움카드
  • stl
  • 딥러닝
  • 변수
  • 큐
  • 데이터분석 인강

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
wn42

코딩이랑 이것저것

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

[Python] 모의고사

2022. 9. 22. 15:08

문제 설명

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.

 

1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...

 

1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요.

 

제한 조건

  • 시험은 최대 10,000 문제로 구성되어있습니다.
  • 문제의 정답은 1, 2, 3, 4, 5중 하나입니다.
  • 가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요.

 

입출력 예

nums result
[1, 2, 3, 4, 5] [1]
[1, 3, 2, 4, 2] [1, 2, 3]

 

코드 작성

def solution(answers):
    supo = [[1,2,3,4,5], [2,1,2,3,2,4,2,5], [3,3,1,1,2,2,4,4,5,5]]
    
    num1, num2, num3 = 0, 0, 0
    i, j, k = 0, 0, 0
    
    for ans in answers:
        if supo[0][i] == ans:
            num1 += 1
        i += 1
        if supo[1][j] == ans:
            num2 += 1
        j += 1
        if supo[2][k] == ans:
            num3 += 1
        k += 1
        if i == 5:
            i = 0
        if j == 8:
            j = 0
        if k == 10:
            k = 0
    answer = []
    max_num = max(num1, num2, num3)
    if max_num == num1:
        answer.append(1)
    if max_num == num2:
        answer.append(2)
    if max_num == num3:
        answer.append(3)
    
    return answer

- 단순하게 answers에 저장된 정답과 수포자들이 찍는 방식을 비교하면 된다.

- 그리고 그 중 가장 많이 맞힌 사람을 answer 배열에 저장하면 된다.

 

    '프로그래머스/LV1' 카테고리의 다른 글
    • [Python] 폰켓몬
    • [Python] 소수 찾기
    • [Python] 소수 만들기
    • [Python] 실패율
    wn42
    wn42
    코딩이랑 이것저것 하는 블로그

    티스토리툴바