본문 바로가기
Algorithm/구현

[프로그래머스 lv 1] 실패율

by HANNI하니 2023. 5. 28.

사용 언어 - Python3

문제 - 실패율

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

정답

구현 (정답 맞춘 여부 X)

정렬 후 리스트 원소값을 출력하는 방법을 몰라서 틀렸다.

새 리스트명 = sorted(리스트명, reverse=True)

a를 s의 정렬된 버전으로 리스트를 저장해주고,

s.index(a[i]) : a의 첫번째 값부터 s에서 찾아서 index를 정답으로 뽑아준다.

중복 방지를 위하여, s에서 이미 찾아진 index의 값은 s[s.index(a[i])] = 2로 설정해준다. 실패율은 1보다 크지 않기 때문에 2는 불가능하기 때문이다.

def solution(N, stages):
    k = len(stages)
    s = []
    
    for i in range(1,N+1): # 스테이지 번호
        c = 0
        for j in range(len(stages)):
            if stages[j] == i:
                c += 1 # 각 스테이지 별 클리어하지 못한 사용자 수
        if c == 0:
            s.append(0)
        else:
            s.append(c/k)
        k -= c
        
    a = sorted(s,reverse=True)
    answer = []
    
    for i in range(len(a)):
        answer.append(s.index(a[i])+1)
        s[s.index(a[i])] = 2 # 실패율 최대 1. 2로 설정해서 중복방지
        
    return answer

 

 

 

레퍼런스

  • 좋은 풀이
 

[프로그래머스 Level 1] 실패율 - 파이썬(Python)

문제 설명 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자

it-garden.tistory.com

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글