본문 바로가기

파이썬

(152)
프로그래머스 단속카메라 - 파이썬 문제 설명 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다. 고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요. 제한사항 차량의 대수는 1대 이상 10,000대 이하입니다. routes에는 차량의 이동 경로가 포함되어 있으며 routes[i][0]에는 i번째 차량이 고속도로에 진입한 지점, routes[i][1]에는 i번째 차량이 고속도로에서 나간 지점이 적혀 있습니다. 차량의 진입/진출 지점에 카메라가 설치되어 있어도 카메라를 만난것으로 간주합니다. 차량의 진입 지점, 진..
프로그래머스 네트워크 - 파이썬 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[..
등굣길 - 파이썬 문제 설명 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 1,000,000,007로 나눈 나머지를 return 하도록 solution 함수를 작성해주세요. 제한사항 격자의 크기 m, n은 1 이상 100 ..
가장 먼 노드 - 파이썬 문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한사항 노드의 개수 n은 2 이상 20,000 이하입니다. 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다. vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다. 입출력 예 nvertex..
백준 2252 줄 세우기 - 파이썬 문제. 풀이. 위상 정렬은 사이클이 없고 방향만 존재하는 그래프에서 정점을 나열하는 방법이다. 정점간의 연결관계를 저장한 리스트와 정점으로 들어오는 그래프 개수를 저장하는 리스트를 만든다. 그리고나서 진입 루트가 0 즉 자기 자신으로 들어오는 그래프 개수가 0인 정점들을 큐에 저장하고 해당 정점과 연결되어 있는 노드에서 진입 루트 개수를 하나씩 빼준다. 이렇게 계속 반복하면 된다. 소스코드.
백준 2213 트리의 독립집합 - 파이썬 문제. 풀이. https://turret1234.tistory.com/187 백준 1949 우수마을 - 파이썬 문제. 풀이. dp[i]0는 i를 포함한 집합 가중치의 최댓값, dp[i][1]을 i를 포함하지 않은 부분 집합 가중치의 최댓값으로 지정하고 dfs를 이용하여 최댓값을 찾아주면 된다. 소스코드. import sys def dfs(star turret1234.tistory.com 최대 값을 구하는 방법은 위 링크와 동일하다. 단 이 문제는 정점을 출력해야하는데, dfs를 이용하여 각 정점에서의 연산을 할 때마다, 거쳐간 정점을 기록하여주고 마지막에 정렬을하여 출력하면 된다. 소스코드.
백준 1949 우수마을 - 파이썬 문제. 풀이. dp[i]0는 i를 포함한 집합 가중치의 최댓값, dp[i][1]을 i를 포함하지 않은 부분 집합 가중치의 최댓값으로 지정하고 dfs를 이용하여 최댓값을 찾아주면 된다. 소스코드.
백준 15681 트리와 쿼리 - 파이썬 문제. 풀이. dfs를 루트노드부터 시작해서 각각의 서브트리의 갯수를 계산하면된다. 소스코드.