Coding Test
-
[프로그래머스] 전력망을 둘로 나누기 c++Coding Test/programmers 2022. 9. 30. 13:20
문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. 제한 사항 n은 2 이상 100 이하인 자연수입니다. wires는 길이가 n-1인 정수형 2차원 배열입니다. wires의 각 원소는 [v1, v2] 2개의 자연수로 이루어져 있으며, 이는 전력망..
-
[프로그래머스] n^2 배열 자르기 c++Coding Test/programmers 2022. 9. 29. 19:07
문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다. 정수 n, left, right가 매개변수로 주어집니다. 주어진 과정대로 만들어진 1차원 배열을 return 하도록 solution 함수를 완성해주세요. 제한 사항 1 ≤ n ..
-
[프로그래머스] 교점에 별 만들기 c++Coding Test/programmers 2022. 9. 29. 14:58
문제 설명 Ax + By + C = 0 형태로 되어 있는 n개의 직선이 (A, B, C) 로 2차원 벡터로 데이터를 제공한다. n개의 직선들의 교점 중 정수로만 이루어진 교점을 찾고, 교점에는 "*" 별 모양으로 표시하고 나머지 좌표는 "."으로 채운다. 격자판은 무한히 넓으니 모든 별을 포함하는 최소한의 크기만 나타낸다. ※참고 사항 Ax + By + E = 0 Cx + Dy + F = 0 두 직선의 교점이 유일하게 존재할 경우, 그 교점은 다음과 같습니다. 또, AD - EC = 0 인 경우 두 직선은 평행 또는 일치합니다. 제한 사항 line의 세로(행) 길이는 2 이상 1,000 이하인 자연수입니다. line의 가로(열) 길이는 3입니다. line의 각 원소는 [A, B, C] 형태입니다. A, ..
-
[프로그래머스] 피로도 c++Coding Test/programmers 2022. 9. 28. 12:41
문제 설명 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다. 이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘 이 던전들..
-
[프로그래머스] 주차 요금 계산 c++Coding Test/programmers 2022. 9. 27. 21:17
문제 설명 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(분) 기본 요금(원) 단위 시간(분) 단위 요금(원) 180 5000 10 600 입/출차 기록 시각(시:분) 차량 번호 내역 05:34 5961 입차 06:00 0000 입차 06:34 0000 출차 07:59 5961 출차 07:59 0148 입차 18:59 0000 입차 19:09 0148 출차 22:59 5961 입차 23:00 5961 출차 자동차별 주차 요금 차량 번호 누적 주차 시간(분) 주차 요금(원) 0000 34 + 300 = 334 5000 + ⌈(334 - 180) / 10⌉ x 600 = 14600 014..
-
[LeetCode] 897. Increasing Order Search Tree c++Coding Test/LeetCode 2022. 9. 27. 12:49
문제 Given the root of a binary search tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no left child and only one right child. 이진탐색트리의 값들을 node.right로 오름차순으로 정렬하는 문제이다. 주어진 이진탐색트리들은 node.left → node.val → node.right 순으로 값들이 오름차순으로 정렬되어 있다. 문제 해결 1. root노드의 left 먼저 탐색 2. 최하위 까지 탐색했다면 ans노드의 right에 root값을 저장 3. ans노드를 right로 ..
-
[LeetCode] 617. Merge Two Binary Trees c++Coding Test/LeetCode 2022. 9. 27. 11:10
문제 You are given two binary trees root1 and root2. Imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge the two trees into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of t..
-
[LeetCode] 2331. Evaluate Boolean Binary Tree c++Coding Test/LeetCode 2022. 9. 26. 21:43
문제 You are given the root of a full binary tree with the following properties: Leaf nodes have either the value 0 or 1, where 0 represents False and 1 represents True. Non-leaf nodes have either the value 2 or 3, where 2 represents the boolean OR and 3 represents the boolean AND. The evaluation of a node is as follows: If the node is a leaf node, the evaluation is the value of the node, i.e. Tru..