877 Stone Game 66.1% Math, DP, MiniMax 1140 Stone Game II 64.9% DP 1406 Stone Game III 56.9% DP 1510 Stone Game IV 58.6% DP 1563 Stone Game V 40.1% DP 1686 Stone Game VI 38.5% Greedy leetcode.com/problems/stone-game/ 877. Stone Game leetcode.com/problems/stone-game-ii/ 1140. Stone Game II leetcode.com/problems/stone-game-iii/ 1406. Stone Game III leetcode.com/problems/stone-game-iv/ 1510. Stone ..
leetcode.com/problems/smallest-subtree-with-all-the-deepest-nodes/ Medium 1013272Add to ListShare Given the root of a binary tree, the depth of each node is the shortest distance to the root. Return the smallest subtree such that it contains all the deepest nodes in the original tree. A node is called the deepest if it has the largest depth possible among any node in the entire tree. The subtree..
leetcode.com/contest/biweekly-contest-41 1684. Count the Number of Consistent Strings https://leetcode.com/problems/count-the-number-of-consistent-strings/ 굳이 set 까지 쓸 필요 있을까? class Solution { public int countConsistentStrings(String allowed, String[] words) { boolean[] flag = new boolean[26]; int cnt = 0; for(char ch : allowed.toCharArray()) flag[ch-'a'] = true; for(String word : words) { boole..
leetcode.com/contest/weekly-contest-214 Contest - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 두문제는 합쳐서 30분안에 풀수있었으나 그 다음 두문제 너무 어려웠다. leetcode.com/problems/sell-diminishing-valued-colored-balls/ Sell Diminishing-Valued Colored Balls - LeetCode Level up your coding skills and qu..
leetcode.com/problems/remove-duplicates-from-sorted-array-ii/ 2번 방법으로 풀어야함. Given a sorted array nums, remove the duplicates in-place such that duplicates appeared at most twice and return the new length. Do not allocate extra space for another array; you must do this by modifying the input array in-place with O(1) extra memory. Clarification: Confused why the returned value is an integer, but y..
DTNS는 기술의 주요 스토리를 제공합니다 Daily Tech News Show is hosted by Tom Merritt and Sarah Lane and does what it says in the name. Each show delivers the top stories in tech combined with analysis from regular contributors and guest perspectives from the top names in technology. Or as listener Alan Char says it, “discussion and analysis of tech news in an entertaining and balanced way that is easy to under..
리트코드 미로찾기 maze 총정리 leetcode.com/problemset/all/?search=maze leetcode.com/problems/the-maze/ 490. The Maze Medium 920104Add to ListShare There is a ball in a maze with empty spaces (represented as 0) and walls (represented as 1). The ball can go through the empty spaces by rolling up, down, left or right, but it won't stop rolling until hitting a wall. When the ball stops, it could choose the nex..
이전 12월 9일 995 995 Minimum Number of K Consecutive Bit Flips Greedy Sliding Window 49.20% Hard 1231 1231 Divide Chocolate Binary Search Greedy 53.20% Hard 1296 1296 Divide Array in Sets of K Consecutive Numbers Array Greedy 55.10% Medium 767 767 Reorganize String String Heap Greedy Sort 49.70% Medium 659 659 Split Array into Consecutive Subsequences Heap Greedy 44.10% Medium 406 406 Queue Reconst..
이전 12월 9일 1368 1368 Minimum Cost to Make at Least One Valid Path in a Grid Breadth-first Search 55.90% Hard 1293 1293 Shortest Path in a Grid with Obstacles Elimination Breadth-first Search 42.60% Hard 1345 1345 Jump Game IV Breadth-first Search 40.30% Hard 752 752 Open the Lock Breadth-first Search 52.40% Medium 317 317 Shortest Distance from All Buildings Breadth-first Search 42.30% Hard 127 1..
leetcode.com/problems/valid-mountain-array/ 941. Valid Mountain Array Easy 57981Add to ListShare Given an array of integers arr, return true if and only if it is a valid mountain array. Recall that arr is a mountain array if and only if: arr.length >= 3 There exists some i with 0 arr[i + 1] > ... > arr[arr.length ..
자바(Java) import java.util.*; public class Main{ public static void main(String args[]){ Scanner sc = new Scanner(System.in); int a, b; a = sc.nextInt(); b = sc.nextInt(); System.out.println(a + b); } } ♠ 입출력에 대한 조금 더 자세한 내용: inner-game.tistory.com/356 C++ #include using namespace std; int main() { auto a=0, b=0; cin >> a >> b; cout
leetcode.com/problems/binary-search-tree-iterator/ 1번과 2번은 공간복잡도에서 차이가 있기 때문에 2번을 선택해야한다. 1번은 모든 노드를 저장하고 2번은 노드의 높이만큼 저장한다. 물론 기울어진 트리의 경우에는 같다. 173. Binary Search Tree Iterator Medium 3097288Add to ListShare Implement the BSTIterator class that represents an iterator over the in-order traversal of a binary search tree (BST): BSTIterator(TreeNode root) Initializes an object of the BSTIterator c..
https://www.youtube.com/watch?v=oBt53YbR9Kk www.educative.io/courses/grokking-dynamic-programming-patterns-for-coding-interviews Grokking Dynamic Programming Patterns for Coding Interviews - Learn Interactively The fact is, Dynamic Programming (DP) problems can be some of the most intimidating on a coding interview. Even when it's actually clear if a problem can be solved using DP (which it rare..
leetcode.com/problems/pairs-of-songs-with-total-durations-divisible-by-60/ 1010. Pairs of Songs With Total Durations Divisible by 60 Medium 75962Add to ListShare You are given a list of songs where the ith song has a duration of time[i] seconds. Return the number of pairs of songs for which their total duration in seconds is divisible by 60. Formally, we want the number of indices i, j such that..
leetcode.com/problems/missing-ranges/ You are given an inclusive range [lower, upper] and a sorted unique integer array nums, where all elements are in the inclusive range. A number x is considered missing if x is in the range [lower, upper] and x is not in nums. Return the smallest sorted list of ranges that cover every missing number exactly. That is, no element of nums is in any of the ranges..
SW 역량 테스트 준비 - 문제 2 code.plus/course/40 총 4개의 알고리즘 (시뮬레이션, 브루트 포스, BFS, 다이나믹 프로그래밍)의 문제 풀이를 위주로 수업을 진행합니다. 이 강의는 4개로 이루어진 강의의 일부입니다. SW 역량 테스트 준비 - 기초: 브루트 포스, BFS, 다이나믹 프로그래밍에 대한 설명과 기초 문제를 풀어봅니다. SW 역량 테스트 준비 - 연습: 기초에서 설명한 알고리즘의 여러가지 연습 문제를 풀어봅니다. SW 역량 테스트 준비 - 문제: 다양한 문제 풀이를 통해 여러가지 알고리즘을 연습해 봅니다. SW 역량 테스트 준비 - 문제 2: 다양한 문제 풀이를 통해 여러가지 알고리즘을 더 연습해 봅니다. 강의에 사용하는 언어는 C++, Java, Python이며, BOJ..
SW 역량 테스트 준비 - 문제 code.plus/course/34 총 4개의 알고리즘 (시뮬레이션, 브루트 포스, BFS, 다이나믹 프로그래밍)의 문제 풀이를 위주로 수업을 진행합니다. 이 강의는 4개로 이루어진 강의의 일부입니다. SW 역량 테스트 준비 - 기초: 브루트 포스, BFS, 다이나믹 프로그래밍에 대한 설명과 기초 문제를 풀어봅니다. SW 역량 테스트 준비 - 연습: 기초에서 설명한 알고리즘의 여러가지 연습 문제를 풀어봅니다. SW 역량 테스트 준비 - 문제: 다양한 문제 풀이를 통해 여러가지 알고리즘을 연습해 봅니다. SW 역량 테스트 준비 - 문제 2: 다양한 문제 풀이를 통해 여러가지 알고리즘을 더 연습해 봅니다. 강의에 사용하는 언어는 C++, Java, Python이며, BOJ에서..
SW 역량 테스트 준비 - 연습 code.plus/course/33 총 3개의 알고리즘 (브루트 포스, BFS, 다이나믹 프로그래밍)의 문제 풀이를 위주로 수업을 진행합니다. 이 강의는 4개로 이루어진 강의의 일부입니다. SW 역량 테스트 준비 - 기초: 브루트 포스, BFS, 다이나믹 프로그래밍에 대한 설명과 기초 문제를 풀어봅니다. SW 역량 테스트 준비 - 연습: 기초에서 설명한 알고리즘의 여러가지 연습 문제를 풀어봅니다. SW 역량 테스트 준비 - 문제: 다양한 문제 풀이를 통해 여러가지 알고리즘을 연습해 봅니다. SW 역량 테스트 준비 - 문제 2: 다양한 문제 풀이를 통해 여러가지 알고리즘을 더 연습해 봅니다. 강의에 사용하는 언어는 C++, Java, Python이며, BOJ에서 C++14,..
SW 역량 테스트 준비 - 기초 code.plus/course/32 총 3개의 알고리즘 (브루트 포스, BFS, 다이나믹 프로그래밍)을 위주로 수업을 진행합니다. 이 강의는 4개로 이루어진 강의의 일부입니다. SW 역량 테스트 준비 - 기초: 브루트 포스, BFS, 다이나믹 프로그래밍에 대한 설명과 기초 문제를 풀어봅니다. SW 역량 테스트 준비 - 연습: 기초에서 설명한 알고리즘의 여러가지 연습 문제를 풀어봅니다. SW 역량 테스트 준비 - 문제: 다양한 문제 풀이를 통해 여러가지 알고리즘을 연습해 봅니다. SW 역량 테스트 준비 - 문제 2: 다양한 문제 풀이를 통해 여러가지 알고리즘을 더 연습해 봅니다. 강의에 사용하는 언어는 C++, Java, Python이며, BOJ에서 C++14, Java, ..
(구) 알고리즘 문제 풀이 1 다양한 알고리즘 문제를 풉니다. 포함되어 있는 문제 1. 알고리즘 문제 풀이 1-1 도로포장 K번째 최단경로 찾기 길의 개수 도시 분할 계획 전구와 스위치 동전 뒤집기 동전 뒤집기 최대 곱 로봇 조종하기 종점 금민수의 개수 금민수의 합 동민 수열 제곱 ㄴㄴ 수 제곱 ㄴㄴ 2. 알고리즘 문제 풀이 1-2 락스타 락동호 영식이와 친구들 소풍 바이너리 파워 비숍 데크 소트 가운데를 말해요 주민등록번호 멀티탭 스케줄링 Pibonacci 레이싱결과 진영 순열 연료 채우기 3. 알고리즘 문제 풀이 1-3 버블 정렬 사분면 우수 마을 신입 사원 수들의 합 3 수들의 합 4 무한이진트리 순회강연 두 배열의 합 금고 테스트 암호화 알고리즘의 약점 단말 정점들의 거리 X와 K 두 수열 4. ..
(구) 다이나믹 프로그래밍 문제 풀이 2 다이나믹 프로그래밍 문제를 풉니다. 포함되어 있는 문제 1. DP 문제풀이 2-1 2차원 배열의 합 상자넣기 동전 벽장문의 이동 이항 계수 2 선물 전달 타일 채우기 커플 만들기 막대기 암호 경로 찾기 최고의 팀 만들기 사과와 바나나 DNA 발견 Acka 플레이리스트 좋아하는 배열 박스 안의 열쇠 트리나라 2. DP 문제풀이 2-2 제단 수학 게임 즐거운 단어 구슬 없애기 내한 공연 혼란 ACM GMO N-Rook II ntopia 좋아하는 배열 2 3. DP 문제풀이 2-3 알고리즘 기말고사 홍준이의 친위대 다이아몬드 대충 정렬 바이너리 트리 생산 공정 책장제작 매수 ls 나무 옮기기 DNA 복사 카우보이 정수 게임 팔굽혀펴기 나이트 ACGU 4. DP 문제풀이..
(구) 다이나믹 프로그래밍 문제 풀이 1 다이나믹 프로그래밍 문제를 풉니다. 포함되어 있는 문제 1. DP 문제풀이 1-1 RGB거리 숫자삼각형 동물원 욕심쟁이 판다 극장 좌석 기지국 자물쇠 신나는 함수 실행 1학년 조 짜기 문자열과 점수 무한 수열 크리스마스 트리 집합의 개수 숫자 박스 RPG 두부장수 장홍준 NP-hard 카드놀이 이진수 찾기 2. DP 문제풀이 1-2 등차수열 사전 테트리스 공통 부분 문자열 LCS LCS 2 LCS 3 팰린드롬 만들기 팰린드롬 파티션 점프 점프 비즈 공예 3. DP 문제풀이 1-3 소형기관차 괄호 문자열 무글 맵스 인접한 비트의 개수 알 수 없는 문장 로또 서로소의 개수 007 소수 만들기 문자열 거리 피보나치 단어 정상 회담 2 같은 탑 모노디지털 표현 크리보드 ..
(구) 다이나믹 프로그래밍 1. 다이나믹 프로그래밍 1 많은 사람들이 어려워 하는 다이나믹 프로그래밍을 쉽고 이해가기 쉽게 가르칩니다. 먼저, 이번 챕터에서는 다이나믹 프로그래밍이 뭔지를 배우게 되며, 약 20가지 문제 풀이를 통해서 다이나믹 프로그래밍을 연습합니다. 2. 다이나믹 프로그래밍 2 한 문제를 5가지 방법으로 접근해서 풀어보면서, 다이나믹 프로그래밍에 대한 이해를 높입니다. 그 다음, 다이나믹 프로그래밍 1에서 배운 문제보다 조금 더 어려운 문제를 풉니다. 3. 다이나믹 프로그래밍 3 비트마스크를 이용해 상태를 나타내고 그 상태를 다이나믹에 이용해 봅니다. 약 10개의 문제를 풀게 됩니다. 마지막으로는 한 문제를 5가지 서로 다른 점화식을 통해서 풀어봅니다. 4. 다이나믹 프로그래밍 4 다이..
(구) 알고리즘 고급 1. 그래프 알고리즘 3 먼저 오일러 회로를 구하는 방법을 배웁니다. 그 다음 강한 연결 요소 (SCC)을 구하는 Kosaju's Algorithm과 Tarjan's Algorithm을 배웁니다. 여기서 DFS Tree에 대한 내용도 배웁니다. 그 다음, Tarjan's Algorithm을 응용해 단절점과 단절선을 구하는 방법을 배우고, 문제 풀이로 응용해 봅니다. 마지막으로 배우는 내용은 2-SAT 문제 입니다. 2. 다이나믹 프로그래밍 4 다이나믹 프로그래밍 4에서는 지금까지 다루지 않았던 다양한 유형의 다이나믹 문제를 풀어봅니다. 트리 다이나믹, 왼쪽과 오른쪽을 왔다갔다 하면서 푸는 다이나믹, 다이나믹 점화식을 통해서 정답을 역추적하는 방법, 확률 다이나믹, 왼쪽과 오른쪽에서 ..
(구) 알고리즘 고급으로 가는 연결고리 1. 다이나믹 프로그래밍 3 비트마스크를 이용해 상태를 나타내고 그 상태를 다이나믹에 이용해 봅니다. 약 10개의 문제를 풀게 됩니다. 마지막으로는 한 문제를 5가지 서로 다른 점화식을 통해서 풀어봅니다. 2. 네트워크 플로우 그래프에서 가장 중요한 알고리즘인 네트워크 플로우를 배웁니다. 최대 유량이 무엇인지를 배우고, 최대 유량을 구하는 두 가지 알고리즘인 Ford-Fulkerson과 Edmond-Karp에 대해서 배웁니다. 이분 매칭, 민 컷, 최소 버텍스 커버, 최대 독립 집합에 대한 이론과 내용을 공부하고, 문제 풀이에 응용해 봅니다. 이 챕터는 알고리즘보다 그래프를 만드는 방법이 중요하기 때문에, 약 15가지 문제를 이용해 그래프 모델링을 연습해봅니다. 3..
2016 SW 역량 테스트 대비 SW 역량 테스트에 주로 나오는 BFS/DFS/다이나믹 프로그래밍 관련 강의입니다. 1. 알고리즘과 입/출력 먼저 알고리즘이 무엇인지에 대해서 간략하게 배웁니다. 그 다음, 알고리즘을 공부하는 방법을 배웁니다. 알고리즘에서 가장 중요한 것은 시간이 얼마나 걸릴지 예측하는 능력이기 때문에, 시간 복잡도를 가장 첫 번재로 배웁니다. 알고리즘은 문제 풀이를 통해서 공부하는 것이 가장 효율적이기 때문에, 입/출력을 받는 방법을 배웁니다. 다양한 예제 문제 (A+B)를 통해서 다양한 입력 형식 (단일 입력, 테스트 케이스, EOF)을 처리하는 방법을 배웁니다. 2. 완전 탐색 0 (모든 경우 다 해보기 전에) 완전 탐색 1에 필요한 두 가지 내용을 먼저 다루는 부분입니다. 이번 챕..
(구) 알고리즘 중급 - Part 2/2 1. 다이나믹 프로그래밍 2 한 문제를 5가지 방법으로 접근해서 풀어보면서, 다이나믹 프로그래밍에 대한 이해를 높입니다. 그 다음, 다이나믹 프로그래밍 1에서 배운 문제보다 조금 더 어려운 문제를 풉니다. 2. 수학 2 수학 2는 알고리즘 보다는 다른 문제를 풀 때 필요한 경우가 많아서 배우는 부분입니다. a^b 제곱 연산을 분할 정복 알고리즘을 이용해서 구하는 방법, 이진수의 원리를 이용해서 구하는 방법을 배웁니다. 그 다음은 행렬에 대한 내용을 간단히 짚고 넘어갑니다. 이제, 피보나치에 관심있는 사람들이 가장 재미있어하는 내용입니다. 바로 피보나치 수에 대해서 배웁니다. 피보나치 수를 구하는 다양한 방법, 피사노 주기, 피보나치 수의 다양한 성질, 피보나치 수..
(구) 알고리즘 중급 - Part 1/2 1. 그리디 알고리즘 그리디 알고리즘을 배웁니다. 많은 사람들이 착각하는 것이 그리디 알고리즘은 쉽다 입니다. 이 챕터에서는 그리디 알고리즘은 어렵지만 풀 수 있다를 배웁니다. 그리디 알고리즘은 증명이 중요하기 때문에, 일부 문제의 경우는 수업 시간에 증명을 합니다. 그리디 알고리즘을 잘하는 방법은 다이나믹 프로그래밍과 마찬가지로 다양한 문제를 푸는 것 입니다. 그리디 알고리즘 챕터도 약 10가지 문제를 통해서 연습을 하게 됩니다. 2. 분할 정복 분할 정복은 문제를 분할한 다음 합쳐서 문제를 푸는 알고리즘입니다. 대표적인 분할 정복 알고리즘인 이분 탐색 알고리즘을 배웁니다. 그 다음에는 대표적인 분할 정복 정렬 알고리즘인 머지 소트와 퀵 소트에 대한 내용을 배웁..
(구) 알고리즘 기초 1. 알고리즘과 입/출력 먼저 알고리즘이 무엇인지에 대해서 간략하게 배웁니다. 그 다음, 알고리즘을 공부하는 방법을 배웁니다. 알고리즘에서 가장 중요한 것은 시간이 얼마나 걸릴지 예측하는 능력이기 때문에, 시간 복잡도를 가장 첫 번재로 배웁니다. 알고리즘은 문제 풀이를 통해서 공부하는 것이 가장 효율적이기 때문에, 입/출력을 받는 방법을 배웁니다. 다양한 예제 문제 (A+B)를 통해서 다양한 입력 형식 (단일 입력, 테스트 케이스, EOF)을 처리하는 방법을 배웁니다. 2. 자료구조 1 알고리즘을 효율적으로 구현하기 위한 자료구조를 배웁니다. 첫 번째로 스택을 배웁니다. 스택이 무엇인지, 어떻게 구현하면 좋을 것인지를 배운 다음 스택을 여려가지 문제를 통해서 응용하게 됩니다. 다른 ..