[Python] 모의고사 - 완전탐색

2024. 2. 15. 21:51· 자료구조&알고리즘/프로그래머스
목차
  1. 문제
  2. 코드
  3. 다른 사람 코드
  4. 접근법
  5. 배운 점
728x90

문제

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

 

프로그래머스

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

programmers.co.kr

 

 

코드

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]
    
    scores = [0, 0, 0]

    for i, answer in enumerate(answers):
        if answer == pattern1[i % len(pattern1)]:
            scores[0] += 1
        if answer == pattern2[i % len(pattern2)]:
            scores[1] += 1
        if answer == pattern3[i % len(pattern3)]:
            scores[2] += 1
    
    max_score = max(scores)            
    winners = [i+1 for i, score in enumerate(scores) if score==max_score]
        
    return winners

 

패턴을 받아와서 %를 통해 해당 패턴과 answer이 일치하는 지 여부를 판단하는 함수입니다

 

다른 사람 코드

 

from itertools import cycle

def solution(answers):
    giveups = [
        cycle([1,2,3,4,5]),
        cycle([2,1,2,3,2,4,2,5]),
        cycle([3,3,1,1,2,2,4,4,5,5]),
    ]
    scores = [0, 0, 0]
    for num in answers:
        for i in range(3):
            if next(giveups[i]) == num:
                scores[i] += 1
    highest = max(scores)

    return [i + 1 for i, v in enumerate(scores) if v == highest]

 

 

 

접근법

 

 

 

 

 

배운 점

cycle(iterable): 주어진 iterable의 원소들을 무한히 반복하는 이터레이터를 생성합니다.
next(iterator[, default]): 이터레이터에서 다음 값을 가져옵니다. 이 함수를 호출할 때마다 이터레이터에서 다음 원소를 반환하며, 더 이상 원소가 없을 경우 StopIteration 예외가 발생합니다. 두 번째 매개변수 default를 제공하면 이터레이터에서 원소가 더 이상 없을 때 해당 값을 반환합니다.

from itertools import cycle

nums = [1, 2, 3, 4, 5]
cyclic_iter = cycle(nums)

for _ in range(10):
    print(next(cyclic_iter))

 

저작자표시 비영리 (새창열림)

'자료구조&알고리즘 > 프로그래머스' 카테고리의 다른 글

[PCCP 기출문제] 2번 / 퍼즐 게임 챌린지  (0) 2024.12.22
[Python] 소수찾기 - 완전탐색  (0) 2024.02.15
[Python] 최소 직사각형 - 완전탐색  (0) 2024.02.14
[Python] H_Index - 정렬  (0) 2024.02.13
[Python] 가장 큰 수 - 정렬  (0) 2024.02.13
  1. 문제
  2. 코드
  3. 다른 사람 코드
  4. 접근법
  5. 배운 점
'자료구조&알고리즘/프로그래머스' 카테고리의 다른 글
  • [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지
  • [Python] 소수찾기 - 완전탐색
  • [Python] 최소 직사각형 - 완전탐색
  • [Python] H_Index - 정렬
두잇 두두
두잇 두두
읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.
두두 DB읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.
두잇 두두
두두 DB
두잇 두두
전체
오늘
어제
  • 분류 전체보기 (135)
    • CS지식 (7)
    • 시스템 설계 (5)
    • 자료구조&알고리즘 (36)
      • 자료구조 (1)
      • 백준 (13)
      • 프로그래머스 (15)
      • 인프런 (2)
    • Python (9)
      • Docs (3)
      • 실험실 (2)
    • Django (36)
      • orm (10)
      • view (3)
      • model (3)
      • admin (3)
      • restframework (13)
      • error (1)
      • utils (2)
    • Java (2)
      • JPA (3)
    • AI (1)
      • AI가 쓴 글 (1)
    • Git (4)
    • Linux (1)
    • 개발자로써 (8)
      • 회고 (1)
    • 문화생활 (0)
      • 여행 (0)
    • 도서📚 (0)
      • 일반 도서 (0)
      • 개발 도서 (0)
    • 프론트 (1)
      • snippet (1)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
두잇 두두
[Python] 모의고사 - 완전탐색
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.