프로그래밍/algorithm
-
leetCode (Two Sum II - Input array is sorted) - Array, Binary Search프로그래밍/algorithm 2021. 7. 1. 10:57
문제 Given an array of integers numbers that is already sorted in non-decreasing order, find two numbers such that they add up to a specific target number. Return the indices of the two numbers (1-indexed) as an integer array answer of size 2, where 1 { let left = 0; let right = numbers.length - 1; while (left < right) { let sum = numbers[left] + numbers[right]; if (sum === target) { return [left ..
-
leetCode (Pascal's Triangle) - Array, DP프로그래밍/algorithm 2021. 6. 28. 08:10
문제 Given an integer numRows, return the first numRows of Pascal's triangle. In Pascal's triangle, each number is the sum of the two numbers directly above it as shown: Example 1: Input: numRows = 5 Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 배경지식 1. Array - 메모리 상에 원소를 연속하게 배치한 자료구조 2. DP - 여러개의 하위 문제를 먼저 풀고, 그것을 쌓아올려 주어진 문제를 해결하는 알고리즘 문제해결 1.테이블 설계 DP[i][j]는 바로 위의 인접한 두 개의 숫자의 합니다 2.점화식 세우..
-
leeCode (Maximum Subarray)-Array, Dp프로그래밍/algorithm 2021. 6. 26. 09:52
문제 Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. Example 1: Input: nums = [-2,1,-3,4,-1,2,1,-5,4] Output: 6 Explanation: [4,-1,2,1] has the largest sum = 6. Example 2: Input: nums = [1] Output: 1 Example 3: Input: nums = [5,4,-1,7,8] Output: 23 배경지식 1. Array - 메모리 상에 원소를 연속하게 배치한 자료구조 특징 : 추가적으로 소모되는 메모리의 ..
-
leeCode (Search Insert Position) -Array프로그래밍/algorithm 2021. 6. 25. 08:40
문제 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. Example 1: Input: nums = [1,3,5,6], target = 5 Output: 2 Example 2: Input: nums = [1,3,5,6], target = 2 Output: 1 Example 3: Input: nums = [1,3,5,6], target ..
-
백준-1149(RGB거리)-DP프로그래밍/algorithm 2021. 6. 21. 09:45
문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 ..
-
백준-2579(계단오르기)-Dynamic Programing프로그래밍/algorithm 2021. 6. 18. 23:22
문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 따라서 첫 번째 계단을 ..
-
백준 - N-Queen(백트래킹)프로그래밍/algorithm 2021. 6. 18. 17:24
문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N 현재상태에서 가능한 모든 군을 따라들어가며 탐색하는 알고리즘 문제해결 - 문제해결방안: 1. N이 주어진다(체스판의 크기(N * N), 퀸의 개수) 2. 퀸이 놓이면 안되는 자리 판별방법으로 3가지가 있다 ㄱ.현재 놓인 퀸과 같은 열에 있으면 안된다 ㄴ.현재 놓인 퀸과 좌측상단, 우측하단 대각선에 있으면 안된다.(x - y 가 같음) ㄷ.현재 놓인 퀸과 좌측하단, 우측상단 ..