본문 바로가기

알고리즘29

[BFS] 1697 - 숨바꼭질 (실버1) with Python https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 주저리 주저리 bfs문제에서 개인적으로 좋다고 생각하는 문제이다. 예전에 선입견이 있을 때 bfs가 그래프 탐색에만 사용되는 줄 알았는데, 이런 방식으로도 사용이 가능하다라는 것을 알게된 좋은 계기였다 생각한다. 문제 해결 bfs로 쉽게 풀리는 문제이다. 간단하게 큐에다가 현재 위치를 넣고, x-1, x+1 , 2*x 위치를 계산한 후 큐에 넣고 다시 돌려주는 형태로 돌.. 2023. 2. 19.
[DP] 11055 - 가장 큰 증가 부분 수열 (실버2) with Python https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 주저리 주저리 이 문제도 아래 문제랑 비슷하게 좋다고 생각한다. 2023.02.19 - [알고리즘/dp] - [DP, 이분탐색] 11053 - 가장 긴 증가하는 부분 수열(실버 2) with Python [DP, 이분탐색] 11053 - 가장 긴 증가하는 부분 수열(실버 2) with Python https://www.acmicpc.net.. 2023. 2. 19.
[DP, 이분탐색] 11053 - 가장 긴 증가하는 부분 수열(실버 2) with Python 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 https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 주저리 .. 2023. 2. 19.
[DP] 10844 - 쉬운 계단 수 (실버 1) with Python https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 주저리 주저리 이런 유형의 문제는 제발 꼭 풀어보자. 언젠간 크게 도움이 되는 것 같다. 문제는 짧지만 어렵게 내거나 처음 풀면 많이 당황 스러울 수 있는 문제인 듯 하다. 중요 표시 문제 해결 이런 케이스는 무조건 표를 만들어서 그려야 한다. 길이/ 끝숫자 0 1 2 3 4 5 6 7 8 9 1 x 1 1 1 1 1 1 1 1 1 2 1 1 2 2 2 2 2 2 2 1 3 1 3 3 4 4 4 4 4 3 2 가로가 끝 숫자 세로가 N이라고 해보자 규칙이 보이는가? 자세히 보면 일단 끝 숫자가 0일 때랑 9일 .. 2023. 2. 19.
728x90