-
11. 실패율Problem Solving 2022. 9. 1. 23:23728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42889
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
스테이지 수 N 만큼 1~N까지 각각의 스테이지 별 실패율을 구하고 실패율이 높은 순서대로 정렬하는 문제
def solution(N, stages): answer = [] answerli = [] stages.sort() for i in range(1, N + 1): if stages.count(i) == 0: fail = 0 else: fail = stages.count(i)/len(stages) answerli.append([fail, i]) for j in range(stages.count(i)): stages.remove(i) for item in sorted(answerli, key=lambda x:x[0],reverse=True): answer.append(int(item[1])) # for n in range(len(answerli)-1, -1, -1): # for m in range(0, n, 1): # if answerli[n][0] == answerli[m][0] and answerli[n][1] < answerli[m][1]: # answerli[n], answerli[m] = answerli[m], answerli[n] # if answerli[n][0] > answerli[m][0]: # answerli[n], answerli[m] = answerli[m], answerli[n] # for k in answerli: # answer.append(k[1]) return answer
코드가 길어지게 된 데.. 상당히 억울한 부분이 있음 그냥 list.sort(reverse=True) 했더니 실패율이 같은 경우에 대해 스테이지 수가 높은 순으로 정렬돼서(낮은 순으로 정렬돼야 함) 이 부분을 고민하느라 오래 걸렸는데 다 풀고 다른 사람들의 풀이를 보니 다들 sorted(list, reversed=True)를 썼더라....
sort를 쓰면 예제 5, [2, 1, 2, 6, 2, 4, 3, 3]에 대해서 결과가 [4,3,2,1,5]으로 나오고
sorted를 쓰면 [3,4,2,1,5]로 나옴
'Problem Solving' 카테고리의 다른 글
13. Single Number (0) 2022.09.04 12. Count Primes (0) 2022.09.04 10. 문자열 압축 (2) 2022.08.31 9. 문자열 다루기 기본 (0) 2022.08.30 8. 평균은 넘겠지 (2) 2022.08.29