[프로그래머스 연습문제][Python] Lv.1 신고 결과 받기

2022. 1. 15. 09:54·Python/알고리즘 문제풀이

2022 카카오 블라인드 리쿠르트

문제 풀러 바로가기 👇👇👇👇👇👇

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

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr

 

 

 

문제풀이

def solution(id_list, report, k):
    answer = [0] * len(id_list)
    # 중복 제거
    result = set(report)
    result = list(result)

    # 신고된 사람 : [신고한 사람]
    dict = {}
    for id in id_list:
        dict[id] = []

    # 신고한 유저와 유저가 신고한 아이디 나누기
    for i in result:
        show = i.split(" ")
        dict[show[1]] += [show[0]]


    # k명 이상 신고된 사람 찾기
    for key, value in dict.items():
        if len(value) >= k:
            for person in value:
                answer[id_list.index(person)] += 1
 

    return answer

딕셔너리를 이용해 문제를 풀었다.

 

1. 일단 중복된 신고는 받지 않는다고 했기 때문에 set()함수를 통해 중복을 제거해준다.

 

2. 신고된 사람 : [신고한 사람] 구도를 만들어준다.

 

3. report에 저장된 값은 "신고한사람 신고된사람" 형식이다. split() 함수를 통해서 report값을 절반으로 나눠준 다음, 딕셔너리 값에 추가했다. (show[0] 를 꼭 리스트처리 해줘야한다. ==> [show[0]] or list(show[0]))

 

4. 이제 딕셔너리를 반복문으로 순회하면서 k명 이상 신고된 사람을 찾는다. 해당 사람을 신고한 사람들의 인덱스 값에 맞춰서 answer값을 1씩 더해주면 정답이 나온다.

'Python/알고리즘 문제풀이' 카테고리의 다른 글
  • [백준][파이썬] DFS와 BFS
  • [프로그래머스 연습문제] 약수의 개수와 덧셈
  • [프로그래머스 연습문제][Python] Lv.1 크레인 인형뽑기 게임
  • [프로그래머스 연습문제][Python] Lv.1 키패드 누르기
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    부스트캠프 멤버십
    jsp
    MySQL
    java
    운영체제
    웹개발
    오류해결
    Python
    스프링
    os
    스프링부트
    알고리즘
    파이썬
    GitHub
    Spring
    자바
    부스트캠프 7기
    Git
    부스트캠프
    자바스크립트
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
[프로그래머스 연습문제][Python] Lv.1 신고 결과 받기
상단으로

티스토리툴바