분류 전체보기
-
[LeetCode] 35. Search Insert Position c++Coding Test/LeetCode 2022. 10. 10. 13:41
문제 Given a sorted array of distinct integers and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order. You must write an algorithm with O(log n) runtime complexity. Input: nums = [1,3,5,6], target = 5 Output: 2 배열 원소 중 target과 같은 값이 있다면 해당 index 구하고, 없다면 오름차순인 배열에 위치시킬 index를 구하는 문제이다. 문제 해결 이 문제를 해결하기 위해 lower_bound 함수에..
-
[LeetCode] 1480. Running Sum of 1d Array c++Coding Test/LeetCode 2022. 10. 10. 13:20
문제 Given an array nums. We define a running sum of an array as runningSum[i] = sum(nums[0]…nums[i]). Return the running sum of nums. Input: nums = [1,2,3,4] Output: [1,3,6,10] Explanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4]. 문제 해결 class Solution { public: vector runningSum(vector& nums) { int len = nums.size(); vector answer(len, 0); answer[0] = nums[0]; for(int i = 1; ..
-
[프로그래머스] 빛의 경로 사이클 c++Coding Test/programmers 2022. 10. 4. 11:44
문제 설명 S, L , R 방향이 주어진다. S는 직진, L 은 좌회전, R은 우회전 한다. (빛이 들어온 방향 기준) 기존에 방문한 좌표를 같은 방향으로 재방문한 경우 "싸이클"이 형성된다. ※사이클 : 같은 좌표, 같은 방향 으로 재방문 빛이 격자의 끝을 넘어갈 경우, 반대쪽 끝으로 다시 돌아옵니다. 예를 들어, 빛이 1행에서 행이 줄어드는 방향으로 이동할 경우, 같은 열의 반대쪽 끝 행으로 다시 돌아옵니다. 사이클을 찾고, 각 사이클의 길이를 구하는 문제이다. 제한 사항 1 ≤ grid의 길이 ≤ 500 1 ≤ grid의 각 문자열의 길이 ≤ 500 grid의 모든 문자열의 길이는 서로 같습니다. grid의 모든 문자열은 'L', 'R', 'S'로 이루어져 있습니다. 입출력 예 grid result..
-
[프로그래머스] 전력망을 둘로 나누기 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 ..