본문 바로가기

코테

[프로그래머스] <실패율> 파이썬

programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

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

programmers.co.kr

def solution(N, stages):
    answer = [[0,0,0]]
    for i in range(1,N+1) : answer.append([0,0,i])
    for s in stages :
        for i in range(1,s+1) : 
            if i <= N : answer[i][1] += 1
        for i in range(1,s) : answer[i][0] += 1

    fail = []
    for i in answer[1:] :
        if i[1] != 0 : fail.append((i[2],float((i[1]-i[0])/i[1])))
        else : fail.append((i[2], 0))

    x = sorted(fail, key = lambda x : (x[1],-x[0]) ,reverse = True)

    a = []
    for i in x :
        a.append(i[0])
    return a

정확성 테스트

테스트 1 통과 (0.04ms, 10.2MB)
테스트 2 통과 (1.30ms, 10.3MB)
테스트 3 통과 (456.72ms, 10.6MB)
테스트 4 통과 (2086.95ms, 10.9MB)
테스트 5 통과 (9147.60ms, 15.1MB)
테스트 6 통과 (4.91ms, 10.3MB)
테스트 7 통과 (71.70ms, 10.3MB)
테스트 8 통과 (2238.60ms, 10.9MB)
테스트 9 통과 (8439.24ms, 14.9MB)
테스트 10 통과 (849.65ms, 10.9MB)
테스트 11 통과 (2240.79ms, 10.9MB)
테스트 12 통과 (998.28ms, 11.4MB)
테스트 13 통과 (4161.09ms, 11.4MB)
테스트 14 통과 (0.66ms, 10.2MB)
테스트 15 통과 (175.51ms, 10.7MB)
테스트 16 통과 (21.64ms, 10.4MB)
테스트 17 통과 (177.00ms, 10.7MB)
테스트 18 통과 (21.87ms, 10.4MB)
테스트 19 통과 (5.65ms, 10.3MB)
테스트 20 통과 (35.48ms, 10.4MB)
테스트 21 통과 (58.95ms, 11MB)
테스트 22 실패 (시간 초과)
테스트 23 통과 (173.86ms, 11.7MB)
테스트 24 통과 (453.46ms, 11.6MB)
테스트 25 통과 (0.01ms, 10.3MB)
테스트 26 통과 (0.01ms, 10.3MB)
테스트 27 통과 (0.01ms, 10.3MB)

채점 결과

정확성: 96.3

합계: 96.3 / 100.0

 

def solution(N, stages):
    answer = []
    
    for n in range(1,N+1) :
        p = 0
        f = 0
        for s in stages :
            if s >= n : p += 1
            if s == n : f += 1
        answer.append([n,float(f/p)])
    temp = sorted(answer, key=lambda x : x[1], reverse = True) 
    
    a = []
    for i in temp : a.append(i[0])
    return a

정확성 테스트

테스트 1 실패 (런타임 에러)
테스트 2 통과 (0.86ms, 10.3MB)
테스트 3 통과 (242.14ms, 10.5MB)
테스트 4 통과 (1220.30ms, 10.8MB)
테스트 5 통과 (4875.80ms, 15MB)
테스트 6 실패 (런타임 에러)
테스트 7 실패 (런타임 에러)
테스트 8 통과 (1306.35ms, 10.8MB)
테스트 9 실패 (런타임 에러)
테스트 10 통과 (524.16ms, 10.9MB)
테스트 11 통과 (1227.28ms, 10.9MB)
테스트 12 통과 (709.73ms, 11.3MB)
테스트 13 실패 (런타임 에러)
테스트 14 통과 (0.21ms, 10.3MB)
테스트 15 통과 (61.99ms, 10.7MB)
테스트 16 통과 (19.44ms, 10.4MB)
테스트 17 통과 (67.52ms, 10.6MB)
테스트 18 통과 (20.59ms, 10.3MB)
테스트 19 통과 (4.74ms, 10.3MB)
테스트 20 통과 (37.67ms, 10.5MB)
테스트 21 통과 (67.22ms, 10.9MB)
테스트 22 통과 (6179.86ms, 18.4MB)
테스트 23 실패 (런타임 에러)
테스트 24 실패 (런타임 에러)
테스트 25 실패 (런타임 에러)
테스트 26 통과 (0.01ms, 10.2MB)
테스트 27 통과 (0.01ms, 10.2MB)

채점 결과

정확성: 70.4

합계: 70.4 / 100.0

 

def solution(N, stages):
    answer = []
    
    for n in range(1,N+1) :
        p = 0
        f = 0
        for s in stages :
            if s >= n : p += 1
            if s == n : f += 1
        if p == 0 : answer. append([n,0])
        else : answer.append([n,float(f/p)])
    temp = sorted(answer, key=lambda x : x[1], reverse = True) 
    
    a = []
    for i in temp : a.append(i[0])
    return a

정확성 테스트

테스트 1 통과 (0.02ms, 10.1MB)
테스트 2 통과 (1.02ms, 10.3MB)
테스트 3 통과 (242.70ms, 10.5MB)
테스트 4 통과 (1313.02ms, 10.9MB)
테스트 5 통과 (5319.14ms, 15MB)
테스트 6 통과 (4.79ms, 10.3MB)
테스트 7 통과 (48.79ms, 10.3MB)
테스트 8 통과 (1211.25ms, 10.8MB)
테스트 9 통과 (5276.63ms, 15MB)
테스트 10 통과 (486.05ms, 10.9MB)
테스트 11 통과 (1313.45ms, 10.9MB)
테스트 12 통과 (711.87ms, 11.4MB)
테스트 13 통과 (2028.82ms, 11.3MB)
테스트 14 통과 (0.23ms, 10.2MB)
테스트 15 통과 (57.52ms, 10.7MB)
테스트 16 통과 (19.43ms, 10.4MB)
테스트 17 통과 (67.18ms, 10.6MB)
테스트 18 통과 (20.56ms, 10.3MB)
테스트 19 통과 (4.82ms, 10.3MB)
테스트 20 통과 (34.67ms, 10.3MB)
테스트 21 통과 (66.75ms, 10.9MB)
테스트 22 통과 (5673.04ms, 18.4MB)
테스트 23 통과 (65.51ms, 11.5MB)
테스트 24 통과 (246.50ms, 11.7MB)
테스트 25 통과 (0.01ms, 10.3MB)
테스트 26 통과 (0.01ms, 10.3MB)
테스트 27 통과 (0.01ms, 10.2MB)

채점 결과

정확성: 100.0

합계: 100.0 / 100.0