광규니
광규니네
광규니
전체 방문자
오늘
어제
  • 분류 전체보기 (154)
    • 알고리즘 (100)
      • 알고리즘 개념 (2)
      • 문제 풀이 (96)
    • 주절주절 (19)
      • 자격증, 활동 후기 (4)
      • 전시회 후기 (3)
      • 이모저모 (2)
      • 회고 (3)
      • 뜨럼 (7)
    • 운영체제 (9)
    • 개발 지식 (9)
      • Apple Watch (4)
      • MySQL (2)
      • Eclipse (1)
      • XCode (1)
    • 네트워크 공부 (1)
    • 데이터베이스 공부 (5)
    • Java 공부 (7)
    • TMP (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 파이썬
  • 알고리즘
  • BFS
  • 백준
  • 애플워치 앱 만들기
  • 애플워치 앱
  • BOJ
  • DP
  • 프로그래머스
  • 합주
  • 다이나믹 프로그래밍
  • 컴퓨터 사이언스
  • 오블완
  • OS
  • 티스토리챌린지
  • 운영체제
  • 개념
  • 구현
  • 자바
  • 드린이

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
광규니

광규니네

알고리즘/문제 풀이

[Python/파이썬 프로그래머스] 실패율

2021. 6. 29. 20:29
반응형

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

 

코딩테스트 연습 - 실패율

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

programmers.co.kr

풀이

lst를 [실패율,인덱스]에 맞게 쓰려고 정의했다

두가지가 오래 걸렸다

 

첫번째, 처음에는 lst를 내림차순으로 배열해놨는데 같은것만 오름차순으로 어띃게 만들지 고민하다가

lambda를 참고했다.

두번째, 테스트 케이스 1,6,23,24..... 몇개가 계속 런타임 에러걸리는데

뭔가 하다가

N=5

stages=[2,1,2,4,2,4,3,3]

이와 같이 5에 경우 사람이 0명으로 0으로 나누면 에러뜨는 상황을 발견해서 수정했다..

def solution(N, stages):
    answer = []
    people=len(stages)
    lst=[[0,i+1] for i in range(N)]
    if N==1:
        answer.append(1)
    else:
        for i in range(1,N+1):
            if people==0:
                break
            cnt=stages.count(i)
            if lst[i-1][0]==0:
                lst[i-1][0]=(cnt)/people
                if cnt>=0:
                    people-=(cnt)
        lst.sort(key = lambda x: (-x[0], x[1]))
        
        for i in range(N):
            answer.append(lst[i][1])
    return answer

 

알아가야할거

lambda 함수를 사용하는 습관을 들여야겠다.!!

위에 예제처럼 람다로 정렬하는 방법

x로 잡고 -x[0]를 붙이면 내림차순으로 먼저 정렬되고

그 다음 우선순위인 x[1] 기준으로 오름차순 정렬된다....

반응형
저작자표시 (새창열림)

'알고리즘 > 문제 풀이' 카테고리의 다른 글

[JAVA SWEA 1210 ] Ladder1  (0) 2021.08.04
[Python/파이썬 프로그래머스] 다트게임(카카오)  (0) 2021.06.30
[파이썬/Python 프로그래머스] 체육복  (0) 2021.06.28
[Python/파이썬 백준 1339] 단어 수학  (0) 2021.06.02
[Python/파이썬 1107 백준] 리모컨  (0) 2021.05.20
    '알고리즘/문제 풀이' 카테고리의 다른 글
    • [JAVA SWEA 1210 ] Ladder1
    • [Python/파이썬 프로그래머스] 다트게임(카카오)
    • [파이썬/Python 프로그래머스] 체육복
    • [Python/파이썬 백준 1339] 단어 수학
    광규니
    광규니
    공부 및 일상 올리기~

    티스토리툴바