[Python] 순위
·
Coding-Test/프로그래머스
💻 문제 정의n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다.선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성한다.💡 접근 및 설계A가 B를 이긴다고 하였을 때, 단순히 상하관계를 따지는 것이 아닌, 나머지 C, D, E, … 와의 승패도 따져야 한다. 만약 따질 수 없다면 등수를 확정 지을..
[Python] 16724 피리 부는 사나이
·
Coding-Test/백준
💻 문제 정의성우가 피리를 불 때면 영과일 회원들은 자기도 모르게 성우가 정해놓은 방향대로 움직이기 시작한다. 성우가 정해놓은 방향은 총 4가지로 U, D, L, R이고 각각 위, 아래, 왼쪽, 오른쪽으로 이동하게 한다.이를 지켜보던 재훈이는 더 이상 움직이기 힘들어하는 영과일 회원들을 지키기 위해 특정 지점에 ‘SAFE ZONE’ 이라는 최첨단 방음 시설을 만들어 회원들이 성우의 피리 소리를 듣지 못하게 하려고 한다. 하지만 예산이 넉넉하지 않은 재훈이는 성우가 설정해 놓은 방향을 분석해서 최소 개수의 ‘SAFE ZONE’을 만들려 한다.성우가 설정한 방향 지도가 주어졌을 때 재훈이를 도와서 영과일 회원들이 지도 어느 구역에 있더라도 성우가 피리를 불 때 ‘SAFE ZONE’에 들어갈 수 있게 하는 ..
[Python] 1766 문제집
·
Coding-Test/백준
💻 문제 정의민오는 1번부터 N번까지 총 N개의 문제로 되어 있는 문제집을 풀려고 한다. 문제는 난이도 순서로 출제되어 있다. 즉 1번 문제가 가장 쉬운 문제이고 N번 문제가 가장 어려운 문제가 된다.어떤 문제부터 풀까 고민하면서 문제를 훑어보던 민오는, 몇몇 문제들 사이에는 '먼저 푸는 것이 좋은 문제'가 있다는 것을 알게 되었다. 예를 들어 1번 문제를 풀고 나면 4번 문제가 쉽게 풀린다거나 하는 식이다. 민오는 다음의 세 가지 조건에 따라 문제를 풀 순서를 정하기로 하였다.N개의 문제는 모두 풀어야 한다.먼저 푸는 것이 좋은 문제가 있는 문제는, 먼저 푸는 것이 좋은 문제를 반드시 먼저 풀어야 한다.가능하면 쉬운 문제부터 풀어야 한다.문제의 개수와 먼저 푸는 것이 좋은 문제에 대한 정보가 주어졌을..
[Python] 징검다리
·
Coding-Test/프로그래머스
💻 문제 정의출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다.예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 [2, 14, 11, 21, 17] 지점에 놓여있을 때 바위 2개를 제거하면 출발지점, 도착지점, 바위 간의 거리가 아래와 같습니다.제거한 바위의 위치 각 바위 사이의 거리 거리의 최솟값[21, 17][2, 9, 3, 11]2[2, 21][11, 3, 3, 8]3[2, 11][14, 3, 4, 4]3[11, 21][2, 12, 3, 8]2[2, 14][11, 6, 4, 4]4위에서 구한 거리의 최솟값 중에 가장 큰 값은 4입니다.출발지점부터 도착지점까지의 거리 distance, 바위들이 있는 위치..
[Python] 단속카메라
·
Coding-Test/프로그래머스
💻 문제 정의고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다.고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요.💡 접근 및 설계각 차량의 경로 끝 부분을 기준으로 해당 차량이 경로를 나가기 전에 카메라를 만날 수 있도록 카메라를 놓는다고 생각해보자. [-20, -15]의 차량을 잡기 위해 -15지점에 카메라를 설치하면, 이후에 등장하는 차량들 중에서 -15보다 전에서 등장하는 차량도 함께 잡을 수 있다. 만약 시작지점이 -15보다 크다면 해당 차량이 나가는 지점에 카메라..
[Python] 섬 연결하기
·
Coding-Test/프로그래머스
💻 문제 정의n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요.다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다.💡 접근 및 설계Union-Find 알고리즘을 이용하여 접근하였다. 각 노드의 부모 노드가 다르다면, Union하면서 동시에 cost를 더한다.✏️ 알고리즘 풀이def find_root(x): if x == parent[x]: return x parent[x] = find_root(parent[..