전체 글 (171) 썸네일형 리스트형 [프로그래머스][2022 KAKAO BLIND RECRUITMENT][Python] 신고 결과 받기 문제를 정리해보자. 게시판 불량 이용자[용의자]를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발했다. 규칙은 다음과 같다. 1. 각 유저는 한 번에 한 명의 유저만 신고할 수 있다. 1-1) 신고 횟수에 제한이 없다. 1-2) 서로 다른 유저를 계속해서 신고할 수 있다. 1-3) 한 유저를 여러 번 신고할 수 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리된다. 2. k번 이상 신고된 유저는 게시판 이용이 정지된다. 2-1) 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 보낸다. 2-2) 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송한다. 3. 자기 자신을 신고하는 경우는 없다. 위 규칙을 바탕으로, 유저별로 처리 결과 메일을 받은 .. [프로그래머스][Python] 가장 먼 노드 문제를 정리해보자. n개의 노드가 있는 그래프가 있다. 각 노드는 1부터 n까지 번호가 적혀있다. 1번 노드에서 가장 멀리 떨어진 노드의 개수를 구하자. 가장 멀리 떨어진 노드란? 최단 경로로 이동했을 때 간선의 개수가 가장 많은 노드이다. 풀이를 생각해보자. 간선에 가중치가 없다. 따라서 N번 노드와 1번 노드의 최단 경로는 간선이 가장 적은 경로이다. 예를 들어, 5번 노드와 1번 노드의 최단 경로는 1 -> 2 -> 5이다. BFS로 최단 경로를 구할 수 있다. 구현해보자. from collections import deque def solution(n, edge): graph = [[] for _ in range(n + 1)] for node in edge: A, B = node[0], node[.. [프로그래머스][Python] 도둑질 문제를 정리해보자. 아래 그림과 같이 집이 동그랗게 배치된 마을이 있다. 도둑은 이 마을을 털 계획이다. 하지만 인접한 두 집을 털면 경보가 울리게 되어 있다. 그래서 도둑은 경보가 울리지 않게 마을을 털 것이다. 각 집에 돈이 담겨 있을 때, 도둑이 훔칠 수 있는 돈의 최댓값을 구하자. 풀이를 생각해보자. 이 문제에서 주의해야 할 점은 2가지이다. 1. 인접한 두 집을 털면 안 된다. 2. 집이 원형 모양으로 배치되어 있다. 위 그림과 같은 마을이 있다고 하자. 첫 번째 집을 방문하면, 두 번째 집과 여섯 번째 집은 방문하지 못한다. 두 번째 집을 방문하면, 첫 번째 집과 세 번째 집은 방문하지 못한다. 다른 집도 마찬가지이다. 집을 1차원상에 두고 생각해보자. 그리고 조건 1을 보자. 두 집이 인접하.. 이전 1 ··· 10 11 12 13 14 15 16 ··· 57 다음