티스토리 뷰
728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/42840
코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
풀이 및 소스코드
각 수포자가 찍는 방식을 so 라는 리스트에 담아준다.
수포자 1부터 돌아가면서 점수를 구해 힙큐에 담아준다.
여기서 최대힙을 만들어야하기 때문에 점수에 - 부호를 붙혀서 넣어주었다.
그렇게 heappop을 하면 -부호가 붙은 제일 큰 값이 나오기 때문에 쉽게 최대 점수를 갖는 학생을 구할 수 있다.
import heapq
def solution(answers):
answer = []
hq = []
so = [[1,2,3,4,5], [2,1,2,3,2,4,2,5], [3,3,1,1,2,2,4,4,5,5]]
for i in range(3):
point = 0
sn = len(so[i])
for j in range(len(answers)):
if sn <= j:
if answers[j] == so[i][j%sn]:
point += 1
else:
if answers[j] == so[i][j]:
point += 1
heapq.heappush(hq, (-point, i))
maxn, index = heapq.heappop(hq)
answer.append(index+1)
while hq:
n, nowi = heapq.heappop(hq)
if n!=maxn:
break
else:
answer.append(nowi+1)
answer.sort()
return answer
반응형
'Coding - Algo > python' 카테고리의 다른 글
[프로그래머스] 위장 (python 파이썬) (0) | 2021.06.13 |
---|---|
[프로그래머스] 더 맵게 (python 파이썬) (0) | 2021.06.10 |
[프로그래머스] K번째 수 (python 파이썬) (0) | 2021.06.09 |
[프로그래머스] 조이스틱 (python 파이썬) (2) | 2021.06.08 |
[프로그래머스] 프렌즈4블록 (python 파이썬) (0) | 2021.06.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래머스 자바
- 삼성청년SW아카데미
- 더 맵게
- swea 4070 타일링
- 3996 자바
- swea 1240 자바
- 타일링 자바
- 프로그래머스
- poker swea
- 백준 dp 문제
- 프로그래머스 더 맵게
- SWEA
- 1699 자바
- swea 타일링
- 백준 풀이
- 백준파이썬
- swea 1240
- yoloV3
- ubuntu
- 메뉴리뉴얼 풀이
- 프로그래머스 파이썬
- union-find
- 파이썬 풀이
- SSAFY
- 백준 17144
- 파이썬
- 우분투
- 백준
- 1240 자바
- swea 타일링 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함