[Programmers] 2021 kakao blind - 합승 택시 요금
https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 풀이 방법 : 플로이드, 다익스트라 나의 사고 과정 1. undirected, ..
2021. 10. 1.
[BOJ] 같은수로 만들기 2374, 13146 (분할정복, 스택)
https://www.acmicpc.net/problem/2374 2374번: 같은 수로 만들기 n(1 ≤ n ≤ 1,000)개의 자연수 A[1], A[2], A[3], …, A[n]이 있다. 이 자연수에 Add(i)라는 연산을 하면, A[i]가 1만큼 증가한다. 이때, A[i]만 증가하는 것이 아니고, A[i]의 좌우로 인접한 같은 수의 그룹이 한 www.acmicpc.net 풀이 방법 : 분할정복 (재귀), 스택 분할정복을 이용한 방법은 O(N^2)까지 나올 수 있어서, 13146에서 시간초과가 납니다. 하지만 stack을 이용한 풀이로 하면 O(N)으로 해결할 수 있습니다. 1. stack을 이용한 풀이 https://www.acmicpc.net/problem/13146 13146번: 같은 ..
2021. 9. 29.
[BOJ] 12738, 14003 LIS(가장 긴 증가하는 수열, 이분탐색) - 2
https://www.acmicpc.net/problem/12738 12738번: 가장 긴 증가하는 부분 수열 3 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000) www.acmicpc.net n이 100만이므로 O(nlogn)의 풀이를 택해야 합니다. 이번엔 이분탐색을 이용해서 풀어보도록 하겠습니다. 참고로 이분탐색은 빠르게 개수는 찾을 수 있지만, LIS가 항상 올바른 순서로 있다고 장담할 순 없습니다. lower_bound함수를 이용하면 t보다 같거나, 큰 가장 최소의 인덱스를 반환해줍니다. 예를들면 arr[3] = {1,5,6} 일때 lower_bo..
2021. 9. 25.
[BOJ] 11053, 11722, 14002 LIS(가장 긴 증가하는 수열, 가장 긴 감소하는 수열) - 1
https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 저는 바로 못풀었습니다. DP로 어떻게 풀지? 이렇게 생각했어요. 위키피디아에서 LIS를 검색해서 시뮬레이션을 보고 이분탐색으로 했습니다. 전 아이언5티어입니다.. 풀이 방법 : 2가지가 있습니다. LIS 시리즈가 1~5까지 있는만큼, 더 좋은방법이 존재합니다. 이번 포스팅에서는 DP를 이용한 풀이, 다음 포스팅에서..
2021. 9. 25.