티스토리 뷰
반응형
🚀 들어가며...
- '레벨 1'의 문제입니다.
- 알고리즘을 풀면서 항상 느끼는 것이지만, 문제를 잘 읽어야 하는것 같습니다.
🔗 문제
https://programmers.co.kr/learn/courses/30/lessons/42889
📑 내용
문제 설명
- 실패율은 다음과 같이 정의한다.
- 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수
전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를 완성하라.
제한사항
- 스테이지의 개수 N은 1 이상 500 이하의 자연수이다.
- stages의 길이는 1 이상 200,000 이하이다.
- stages에는 1 이상 N + 1 이하의 자연수가 담겨있다.
- 각 자연수는 사용자가 현재 도전 중인 스테이지의 번호를 나타낸다.
- 단, N + 1 은 마지막 스테이지(N 번째 스테이지) 까지 클리어 한 사용자를 나타낸다.
- 만약 실패율이 같은 스테이지가 있다면 작은 번호의 스테이지가 먼저 오도록 하면 된다.
- 스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0 으로 정의한다.
💌 소스코드
# N stages result
# 5 [2, 1, 2, 6, 2, 4, 3, 3] [3,4,2,1,5]
# 4 [4,4,4,4,4] [4,1,2,3]
def solution(N, stages):
result = {}
length = len(stages)
for i in range(1, N + 1):
if length != 0: # 분모가 0인 케이스 예외처리
count = stages.count(i) # 파이썬 count 함수로
result[i] = count / length
length -= count # 총 길이에서 count를 빼주고 다음꺼 재계산
else:
result[i] = 0 # 이 부분에서 result[i] = i로 했다가 계속 틀렸던 부분
return sorted(result, key=lambda x: result[x], reverse=True)
🙋🏻♂️ 후기
우선 파이썬 count함수를 써서 문제를 해결하였고, 처음에 문제를 잘못이해해서 시간을 허비했지만, 천천히 정독하여 다시 읽은 후 옳은 방향으로 나아갔던것 같습니다. 마지막에 length변수의 값이 0인경우 예외처리 해주는 부분에서
result[i] = i 로 예외처리를 해서 계속 틀렸었는데, result[i] = i로 예외처리를 하면 결국 실패율이 계속 i로 생기는 것이므로, 0으로 예외처리를 해 주었더니 잘 실행되었습니다.
예외처리 할 때도 잘 생각하여 예외처리를 해야겠다는 것을 다시 한번 느끼는 과정이었습니다.
반응형
'Algorithm' 카테고리의 다른 글
[python][프로그래머스] 삼각달팽이 (0) | 2022.06.22 |
---|---|
[python][프로그래머스] 124 나라의 숫자 (0) | 2022.06.14 |
[python][프로그래머스] 행렬테두리 회전하기 (2) | 2022.06.12 |
[python][프로그래머스] 로또의 최고순위와 최저순위 (0) | 2022.06.08 |
[python][완전탐색][프로그래머스] 다트게임 (2) | 2022.05.25 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- JS
- static files
- db
- Named export
- react
- JavaScript
- Master & Slave
- PostgreSQL
- Linux
- container
- MVT
- Default export
- docker
- django
- SQL
- Greedy Algorithm
- lv2
- generator expression
- uSWGI
- Python
- union-find
- django ORM
- lv1
- This
- data formatting
- programmers
- 탐욕법
- Algorithm
- ORM
- list
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함