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

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밍비

프로그램의 편린

프로그래머스

[Lv.1][python]신고 결과 받기

2022. 8. 2. 18:31
728x90

 

 

프로그래머스

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

programmers.co.kr

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

def solution(id_list, report, k):
    answer = [0 for _ in id_list]
    dic = {id: [] for id in id_list}
    enum = {id: idx for idx, id in enumerate(id_list)}
    #중복 신고 제거
    report = list(set(report))
    # 회원별 신고한 id 딕셔너리 만들기
    for element in report:
        temp = element.split()
        dic[temp[1]].append(temp[0])
    #정지시킨 애들 메일발송
    for idx, id in enumerate(id_list):
        if len(dic[id]) >= k:
            for j in dic[id]:
                answer[enum[j]] += 1
    return answer

신고받은 id -> 정지시킬 id -> 신고한 id 이 흐름을 따라갈 때 이미 사용한 데이터를 재사용시키는 것이 어려웠다.

처음에는 딕셔너리 대신 3중 for문을 써서 풀었는데, 문제가 풀리긴 했지만 시간이 오래 걸려서 마음에 들지 않았다.

공간복잡도의 제약도 없고 해서 딕셔너리 마구 만들어서 풀었다.ㅋㅋㅋ

728x90

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

[Lv.1][python] 같은 숫자는 싫어  (0) 2022.08.07
[Lv.1][python] 크레인 인형 뽑기 게임  (0) 2022.08.07
오픈채팅방  (0) 2022.07.01
문자열 압축  (0) 2022.07.01
키패드 누르기  (0) 2022.06.23
    밍비
    밍비

    티스토리툴바