Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SQL고득점키트
- SQL
- 카카오코테
- H-인덱스
- Join
- 스택
- 재귀
- SQL #프로그래머스 #SELECT
- h-index
- 코딩테스트
- 분할정복
- SQL #프로그래머스 #MAX #MIN
- 2단계
- 해시
- 파이선
- 행렬곱셈
- 파이썬 #프로그래머스 #코딩테스트
- 골든래빗
- 코테
- 고득점kit
- 고득점키트
- SQL #프로그래머스 #조건절 #ISNULL
- 파이썬
- 공식문서
- 기초
- 프로그래머스
- 방문길이
- Python
- level2
- groupby
Archives
- Today
- Total
영아일지
[프로그래머스 kakao] level 1 - 실패율 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42889
[내 풀이]
1. 스테이지를 1~N까지 올리며 해당 스테이지에 있는지에 대한 여부를 판단한다
2. result라는 딕셔너리로 스테이지, 실패율을 저장한다
3. sort함수로 실패율 순으로 정렬하고 key값만 추출한다
**이때 total이 0인 경우를 생각을 못해서 처음에 런타임 에러가 났었다. 예외인 경우도 꼭 생각해볼 것!
def solution(N, stages):
stages = [0]+stages #번호 맞추기 위함
result = {}
total = len(stages)-1
for i in range(1, N+1): #i번 스테이지
fail = 0
if total != 0:
for j in range(len(stages)):
if stages[j] == i:
fail += 1
fail_rate = fail/total #실패율
result[i] = fail_rate
total -= fail
else:
result[i] = 0
result = sorted(result.items(), key=lambda x:(-x[1], x[0]))
ans = []
for a in range(N):
ans.append(result[a][0])
return ans
[다른 사람 풀이]
result = sorted(result.items(), key=lambda x:(-x[1], x[0]))
ans = []
for a in range(N):
ans.append(result[a][0])
위의 풀이 대신 밑으로도 정렬을 간결하게 해결가능하다!
sorted(result, key=lambda x : result[x], reverse=True)
'디지털 > 코딩테스트' 카테고리의 다른 글
[프로그래머스 level-2] 괄호 변환 (0) | 2023.06.22 |
---|---|
[프로그래머스 고득점 키트 - 스택/큐] Level2 - 프로세스 (0) | 2023.05.30 |
코딩테스트 - 분할정복 알고리즘 (0) | 2023.04.27 |
프로그래머스 피보나치 수 문제 (0) | 2023.04.15 |
[프로그래머스] level 2 - 1차 뉴스 클러스터링 (0) | 2023.04.02 |