일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- python
- 백준위
- IT 동향
- SSAFY 7기
- 싸피
- 코딩테스트
- 네트워크 관리사 2급 실기
- 백준
- IT 트렌드
- 신문 스크랩
- it 뉴스
- 우테코
- 인앱결제
- 프로그래머스
- html
- 네트워크 관리사
- java 객체지향 프로그래밍
- 코테
- Java
- KT
- it 이슈
- 신문스크랩
- 카카오
- 리얼클래스
- 네트워크 관리사 2급
- 코딩테스트 연습
- 구글
- SSAFY
- SSAFYcial
- 싸피셜
- Today
- Total
개발자일걸요..?
실패율 본문
링크 : https://programmers.co.kr/learn/courses/30/lessons/42889
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
(프로그래머스 > 코딩테스트 연습 > 2019 카카오 블라인드 채용 > 실패율(level1))
<문제>
슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다.
이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라.
- 실패율은 다음과 같이 정의한다.
- 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수
전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를 완성하라.
<내가 작성한 코드>
def solution(n, stages):
people = len(stages)
level = []
for i in range(1,n+1):
level.append(stages.count(i));
rates = []
for i in range(0,n):
if people==0:
rates.append(0)
else:
rates.append(level[i]/people)
people-=level[i]
sortedRates = sorted(rates,reverse=True)
answer=[]
for i in range(0,n):
for j in range(0,n):
if(sortedRates[i]==rates[j]):
answer.append(j+1)
rates[j]=-1
break
return answer
<다른 사람의 풀이를 참고해서 작성한 코드>
def solution(n, stages):
answer = {}
people = len(stages)
for stage in range(1, n+1):
if(people==0):
answer[stage]=0
else:
participate = stages.count(stage)
answer[stage] = participate / people
people -= participate
return sorted(answer, key=lambda x : answer[x], reverse=True)
<참고한 개념>
- [] -> 리스트 (배열을 선언&초기화할 때, 배열의 원소에 접근할 때 사용)
- {} -> 딕셔너리(딕셔너리를 선언&초기화할 때 사용// 여기서 []는 key에 대응하는 value 할당 or value에 접근)
lambda식 표현 -> lambda 인자:표현식
위의 코드에서는 x:answer[x] 이기에 answer를 리스트가 아니라 딕셔너리로 표현해야함. (x는 키, answer[x]는 value)
'알고리즘코딩 > Programmers' 카테고리의 다른 글
가운데 글자 가져오기 (0) | 2021.07.25 |
---|---|
약수의 합 (0) | 2021.07.25 |
내적 (0) | 2021.07.25 |
3진법 뒤집기 (0) | 2021.07.25 |
소수 만들기 (0) | 2021.07.24 |