밍비
프로그램의 편린
밍비
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • Spring (2)
    • TIL (23)
    • 프로그래머스 (12)
    • Udemy (16)
    • Typescript (2)
    • MERN (1)
    • AWS (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 네이버커넥트
  • Edge Locations
  • 리액트 생애주기
  • 수평 스케일링
  • DOM
  • Points of Presence
  • useRef
  • State 합치기
  • 분산저장소
  • Page Moving
  • 리액트
  • useNavigate
  • AWS Regions
  • API 호출
  • 한입크기로잘라먹는리액트
  • Availability Zones
  • useState
  • 리스트 조회
  • 리액트 프로젝트 만들기
  • 데이터 수정
  • useParams
  • react
  • 컴포넌트트리
  • 함수형 update
  • 서비스아키텍처
  • state 관리
  • state 끌어올리기
  • 한입 크기로 잘라먹는 리액트
  • overflow-wrap
  • 리액트 reducer

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밍비
프로그래머스

[Lv.1][python] 완주하지 못한 선수

프로그래머스

[Lv.1][python] 완주하지 못한 선수

2022. 8. 7. 18:29
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/42576

 

프로그래머스

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

programmers.co.kr

문제는 여기서 확인할 수 있다.

def solution(participant, completion):
    answer = ''
    for i in completion:
        if i in participant:
            participant.remove(i)
            continue
    answer = participant[0]
    return answer

그냥 브루트포스로 for문을 돌렸더니 효율성 테스트에서 모두 실패가 났다...

for문을 돌리고 그 안에서 remove()를 또 사용해 O(n^2)가 된 것이다.

다시 카테고리를 봤더니 해시 문제여서 해시를 사용하기로 했다.

파이썬에서 해시는 딕셔너리로 대체 가능하다.

def solution(participant, completion):
    answer = ''
    part_dict = dict.fromkeys(participant, 0)
    for i in participant:
        part_dict[i] += 1
    for i in completion:
        part_dict[i] -= 1
    for key, val in part_dict.items():
        if val != 0:
            answer = key
    return answer

겉보기에는 for문이 3개나 있어서 더 오래걸릴 것 같아 보이지만, 실제로는 O(n)으로 위의 코드보다 더 빠르게 실행된다.

728x90

'프로그래머스' 카테고리의 다른 글

[Lv.1][python] 체육복  (0) 2022.08.08
[Lv.1][python] 같은 숫자는 싫어  (0) 2022.08.07
[Lv.1][python] 크레인 인형 뽑기 게임  (0) 2022.08.07
[Lv.1][python]신고 결과 받기  (0) 2022.08.02
오픈채팅방  (0) 2022.07.01
    밍비
    밍비

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.