[프로그래머스/Python] 알고리즘고득점Kit - 완전탐색 - 모의고사

2024. 10. 14. 12:36·코딩테스트/프로그래머스
728x90
반응형

📌 문제 링크 

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

 

프로그래머스

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

programmers.co.kr

 

📌 문제 설명 

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 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하는 값을 오름차순 정렬해주세요.

📌 풀이 과정 

  1. 1번, 2번, 3번 수험자의 답을 찍는 패턴을 분석한다. 
  2. 그리고 answers 배열을 한 바퀴 도는 동안 1번, 2번, 3번 수험자의 패턴도 같이 돌린다. 
    • 각 수험자에게 인덱스를 하나씩 부여한다. pt1, pt2, pt3 
    • 📢 주의할 점
      1. 맞췄을 경우에 tmp[i] (1번 => 0번 인덱스, 2번 => 1번 인덱스, 3번 => 2번 인덱스) 각각에 1씩 더한다.
      2. 단, 포인터 pt# 는 for문 한번 돌릴 때마다 무조건 1씩 증가시켜야 한다. (맞췄을 때만 증가시키는 거 아님 !!!) 
      3. 포인트 pt#가 끝에 도달했을 때는 0으로 돌아갈 수 있도록 한다. 
  3. 모든 채점 끝난 뒤, max(tmp)값과 동일한 값을 가진 인덱스를 1씩 더해 리턴한다. 

 

📌풀이 코드 

def solution(answers):
    answer = []
    
    tmp = [0, 0, 0]
    one = '12345'; pt1 = 0
    two = '21232425'; pt2 = 0
    three = '3311224455'; pt3 = 0
    
    for i in range(len(answers)):
        print(answers[i], one[pt1], two[pt2], three[pt3])
        if answers[i] == int(one[pt1]): tmp[0] += 1
        if answers[i] == int(two[pt2]): tmp[1] += 1
        if answers[i] == int(three[pt3]): tmp[2] += 1
            
        pt1 += 1; pt2 += 1; pt3 += 1
        if pt1 == len(one): pt1 = 0 
        if pt2 == len(two): pt2 = 0
        if pt3 == len(three): pt3 = 0 
        
    for i,t in enumerate(tmp): 
        if max(tmp) == t: 
            answer.append(i+1)
            
    return answer
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

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

[프로그래머스/Python] 알고리즘고득점Kit-탐욕법(Greedy)-체육복  (2) 2024.10.14
[프로그래머스/Python] 알고리즘고득점kit-완전탐색-소수찾기  (0) 2024.10.14
[프로그래머스/Python] 알고리즘고득점Kit-완전탐색-최소직사각형  (1) 2024.10.14
[프로그래머스/Python] 알고리즘고득점Kit-해시-폰켓몬  (5) 2024.10.13
[프로그래머스/Python] 알고리즘고득점Kit-해시-의상  (1) 2024.10.13
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • [프로그래머스/Python] 알고리즘고득점Kit-탐욕법(Greedy)-체육복
  • [프로그래머스/Python] 알고리즘고득점kit-완전탐색-소수찾기
  • [프로그래머스/Python] 알고리즘고득점Kit-완전탐색-최소직사각형
  • [프로그래머스/Python] 알고리즘고득점Kit-해시-폰켓몬
heeya16
heeya16
개발 공부 냠냠
  • heeya16
    개발자 희야
    heeya16
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • 코딩테스트 (66)
        • 프로그래머스 (38)
        • SWEA (2)
        • BAEKJOON (26)
      • 알고리즘 (7)
      • 자료구조 (19)
      • 프로젝트 (5)
      • 취업 주르륵 (2)
      • 데이터베이스 (0)
      • IT지식 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    1003
    10448
    10773
    10월
    10진수
    11047
    11399
    11403
    11866
    1449
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
heeya16
[프로그래머스/Python] 알고리즘고득점Kit - 완전탐색 - 모의고사
상단으로

티스토리툴바