목록콘텐츠/파이썬-알고리즘 기초_ 2021 (18)
supergravity
목차 시작 매트릭스에서 DP 문제 1 : 최소비용으로 목적지까지 도달하기 문제 2: 공 낙하 실험 문제 3: [카카오 인턴] 경주로 건설 연속된 부분 처리하는 유형 문제 1: 증가하는 가장 큰 수열 만들기 문제 2: 최장 공통부분 수열 문제 3: 두 리스트의 가장 긴 공통부분 찾기 문제 4: 복수전공 수강 신청 문제 5: [카카오 인턴] 보석 쇼핑 문제 6: [카카오 블라인드] 광고 삽입 이전의 영역에서 선택되어 오는 경우 문제 1: Min Cost Climbing Stairs 문제 2: Coin Change 문제 3: Word Break 문제 4: Best Time to Buy and Sell Stock IV 문제 5: Best Time to Buy and Sell Stock with Transacti..
목차 시작 쉽게 dp문제 알아보는 법 전략 문제 시작 이전 글에서는 피보나치를 통해 다이나믹 프로그래밍의 기본적인 아이디어를 살펴보았습니다. 이를 기반으로 이번 글에서는 다이나믹 프로그래밍 문제에 대한 일반화와 기본적인 문제 접근 방식에 대해 알아봅시다. 다이나믹 프로그래밍은 기본적으로 모든 경우를 탐색합니다. 하지만 완전탐색에 추가된 점이 있는데 이는 이전에 계산한 결과를 다시 사용한다는 점입니다. 이전에 본 피보나치의 경우에도 기본적으로는 완전 탐색을 진행하고 계산 결과를 memo에 기록해 두었다가. 다시 사용함으로써 다이나믹 프로그래밍을 구현했습니다. 다이나믹 프로그래밍은 완전탐색에 memo를 추가한 방법입니다. 그래서 완전탐색으로 해결 가능한 문제 중 일부가 다이나믹 프로그래밍으로 해결 가능합니다..
목차 시작 문제 1: 기본적인 문제 문제 2: merge intervals 1시간 30분 동안 헛짓하다 틀린 문제 정리 시작 merge interval 유형은 구글 코딩 인터뷰에서 자주 등장하는 유형인 만큼 중요합니다. merge interval이름은 '구간을 합치다'라는 뜻을 가지고 있습니다. 이 알고리즘의 경우 이론에 복잡한 내용이 없습니다. 직관적으로 예제를 통해 익히면 쉽게 접근할 수 있으니, 바로 문제를 풀어 봅시다. 1. 가장 기본적인 merge intervals https://leetcode.com/problems/teemo-attacking/ Teemo Attacking - LeetCode Level up your coding skills and quickly land a job. This..
목차 -시작 -프로그래머스 3단계 : 입국 심사 -프로그래머스 3단계 : 금과 은 운반하기 -프로그래머스 3단계 : 징검다리 건너기 (카카오) -프로그래머스 4단계 : 징검다리 -정리 시작 이전에 학습한 내용에서 아래와 같은 상황이었습니다. if target > list[mid]: = b and g_max+s_min >= a + b: end = mid mid = (start + end)//2 else: start = mid mid = (start + end)//2 return mid + 1 프로그래머스 3단계 : 징검다리 건너기 (카카오) https://programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, ..
목차 -시작 -문제 1 -문제 2 -문제 3 -문제 4 -백준에서 풀어보면 좋은 문제들 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr 시작 이번 시간에는 기본 graph 알고리즘 지식을 바탕으로 실전 문제를 풀어볼 것입니다. 실전 문제에서는 2차원 행렬이 주어질 때 회전과 방향을 고려하여 해결하는 문제가 대부분입니다. 실전 문제는 프로그래머스와 백준의 문제를 사용하고 있습니다. 문제의 생각 흐름을 보기 전 먼저 해당 사이트에 접속해 문제를 푸는 것을 추천드립니다. 그러면 바로 문제로 들어가 봅시다. 문제 1 : 행렬의 회전 다루기 - 행렬 ..
목차 -시작 -문제 1 : 가장 비효율 적인 코드부터 효율적인 코드까지 -실전 문제 : 카카오 보석 쇼핑 문제 풀기 시작 이번 시간에는 투 포인터 알고리즘에 대해 알아보겠습니다. 투 포인터 알고리즘은 리스트에서 연속된 구간을 처리하는 데 사용합니다. 투 포인터 알고리즘의 경우 예제 보면 쉽게 이해할 수 있습니다. 바로 예제로 들어가 봅시다. 문제 1번 : 가장 비효율 적인 코드부터 효율적인 코드까지 길이가 N이고 자연수로 구성된 리스트 a와 정수 target이 인풋으로 주어집니다. sum(a [i:j+1]) == target인 i , j 중 j-i가 가장 작은 값을 리턴하여라. 리턴 형식은 [i, j]처럼 리스트로 하면 된다. 가장 작은 값이 여러 개 존재한다면 i가 작은 값을 리턴하면 됩니다. (단 N..
목차 -시작 -문제 1: 백준 - 1, 2, 3 더하기 -문제 2: 백준 - 정수 삼각형 -문제 3: 백준 - 스티커 -문제 4: 백준 - 평범한 배낭 -문제 5: 최장 공통부분 문자열
목차 -시작 -플로이드-워셜 알고리즘(Floyd-Warshall Algorithm) -다익스트라 알고리즘(Dijkstra algorithm) -벨먼-포드 알고리즘(Bellman-Ford algorithm) -문제 시작 최단 경로 알고리즘은 graph가 주어 질 때 최단 경로를 찾는 방법입니다. graph는 node와 edge로 구성된 집합입니다. 만약 위의 문장이 생소하다면 여기를 클릭해 주세요. 클릭 이전에 배운 BFS 또한 최단 거리 알고리즘이라 할 수 있습니다. BFS는 weight가 없는(edge의 거리가 모두 1인) graph가 주어질 때 시작 node에서 모든 노드로 가는 최단 거리를 구하는 알고리즘이었습니다. BFS가 크리스털 클리어하지 않다면 여기를 클릭해 주세요. 클릭 최단 경로 알고리즘..