문제 분석
- 참여 가능한 등수 높은 3명 선발
- 3명의 등수에 따라 1등의 rank 인덱스*10000 + 2등의 rank 인덱스*100 + 3등의 rank 인덱스
정답 코드
실패..
def solution(rank, attendance):
answer = 0
std = []
for i in range(len(rank)):
# 참가 가능한 학생만 남기기
if attendance :
std.append(rank[i])
sorted(rank, reverse=True)[:3]
answer = rank[0]*10000 + rank[1]*100 + rank[2]
return answer
다른 사람 코드 1
def solution(rank, attendance):
arr = sorted([(x, i) for i, x in enumerate(rank) if attendance[i]])
return arr[0][1] * 10000 + arr[1][1] * 100 + arr[2][1]
- 등수에 따른 정렬을 할 거기 때문에 for i, x로 받고, (x,i)로 정렬
다른 사람 코드 2
def solution(rank, attendance):
selected = []
for i, attend in enumerate(attendance):
if attend:
selected.append((rank[i], i))
selected.sort()
a, b, c = selected[:3]
return 10000 * a[1] + 100 * b[1] + c[1]
다른 사람 코드 3
def solution(rank, attendance):
lst = []
for i in range(len(rank)):
if attendance[i]:
lst.append((rank[i],i))
lst.sort()
return 10000*lst[0][1]+100*lst[1][1]+lst[2][1]
다른 사람 코드 4
def solution(rank, attendance):
answer = 0
n = len(rank)
s = []
for i,v in enumerate(rank):
if attendance[i] == True:
s.append([v,i])
s.sort()
a,b,c = s[0][1],s[1][1],s[2][1]
return 10000 * a + 100 * b + c
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[Python] 프로그래머스 lv.1 최소직사각형 (0) | 2024.11.28 |
---|---|
[Python] lv.0 0 떼기 (1) | 2024.11.28 |
[Python] 프로그래머스 lv.2 다리를 지나는 트럭 (0) | 2024.11.27 |
[Python] 프로그래머스 lv.3 베스트 엘범 (0) | 2024.11.25 |
[Python] 프로그래머스 lv.2 의상 (1) | 2024.11.25 |