실버3 3

[백준] 11053 가장 긴 증가하는 부분 수열 - 실버 3

[오늘의 문제]https://www.acmicpc.net/problem/11053[오늘의 학습 키워드]DP, 브루트포스 탐색, 구현1. 문제설명 수열이 주어질 때 해당 수열중에서 가장 긴 증가하는 부분 수열을 찾는 문제 입니다. 만약 1 2 1 2 3 이 주어진다면 이 수열의 길이는 3이 되겠죠 또 1 10 2 3 이 주어진다면 이 수열의 길이는 3이 됩니다. 이런식으로 주어진 수열 중에서 가장 긴 증가하는 부분을 찾는 문제 입니다.[제한사항]시간 제한 1초메모리 제한 256MB첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다.둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000)2. 접근방식처음에는 문제의 예시만 보고 DP 테이블을 구성하기 위해 시간 복..

알고리즘 2025.05.19

[백준]1913 달팽이 - 실버3

[오늘의 문제]https://www.acmicpc.net/problem/1913[오늘의 학습 키워드]구현1. 문제설명홀수인 자연수 N이 주어지면, 다음 그림처럼 1부터 N^2 까지의 자연수를 달팽이 모양으로 N x N 의 표에 채우고 특정 수를 찾는 문제입니다.[제한사항]시간 제한 2초메모리 제한 128MB3 ≤ N ≤ 9992. 접근방식 우선 문제의 제한사항부터 보면 2차원 배열을 달팽이 모양으로 채우려면 결국 전체탐색인 N X N 만큼의 시간이 걸릴 것입니다. 그러면 최대 999 X 999가 발생하는데 이는 998,001 으로 1초에 최대 100만번 동작을 실행하는 파이썬은 무리없이 수행가능한 시간입니다. 또 시간 제한이 2초 이므로 시간은 신경쓰지 않고 구현하면 될 것 같습니다. 구현의 목표는 중심..

알고리즘 2025.04.22

[백준] 2579 계단 오르기 - 실버 3

[오늘의 문제]https://www.acmicpc.net/problem/2579[오늘의 학습 키워드]다이나믹 프로그래밍, 점화식1. 문제설명  오르려는 계단이 N개 주어질 때 계단을 오를 때마다 계단에 적힌 점수를 얻습니다. 계단은 연속해서 3칸 이상 오를 수 없습니다. 즉 4번째 계단을 가기 위해서는 1, 2, 4 로 가거나 1, 3, 4 로 올라가야 합니다. 계단을 올라 N번째 계단에 도착할 때 얻을 수 있는 최대값을 구하는 프로그램을 작성해야 합니다.[제한사항]시간 제한 1초메모리 제한 128MB계단은 300개 이하점수는 10,000 이하2. 접근 방식 이 문제는 N번째 계단이 어떻게 올라왔을 까를 고려하는 점화식을 세우는 문제입니다. 처음부터 차근차근 생각해 보겠습니다. 1. 계단을 1칸 오를 때..

알고리즘 2025.04.12