문제코드import sysinput = sys.stdin.readlinen, x = map(int, input().split())arr = list(map(int, input().split()))init_data = sum(arr[0:0 + x])visitor = [init_data]for i in range(1, n - x + 1): visitor.append(visitor[i-1] - arr[i - 1] + arr[i + x - 1])if max(visitor) == 0: print("SAD")else: print(max(visitor), visitor.count(max(visitor)), sep="\n") `슬라이딩 윈도우` 알고리즘은 고정 범위를 탐색할 때 효율적임한 칸을 전진하면..
728x90
반응형
Algorithm - 알고리즘 연습
1. 시간제한(30분 ~ 1시간)2. 안풀리면 과감히 답지보기3. 답지 한줄 한줄 이해할 때까지 보기https://www.youtube.com/watch?v=LBup2VMVHXw&t=11s날짜문제 번호유형복습일2024.04.051931.회의실 배정그리디 알고리즘2024.04.092024.04.061541. 잃어버린 괄호그리디 알고리즘2024.04.09 11047. 동전 0DP, 배낭 문제2024.04.092024.04.0912865. 평범한 배낭DP, 배낭 문제2024.04.10 1946. 신입사원DP, 정렬2024.04.11 9084. 동전DP, 배낭 문제 2024.04.167576.토마토BFS 2024.05.089012.단어 뒤집기문자열
[Silver II] 좌표 압축 - 18870 문제 링크 성능 요약 메모리: 143268 KB, 시간: 1768 ms 분류 값 / 좌표 압축, 정렬 제출 일자 2024년 2월 23일 12:03:12 문제 설명 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 출력 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 ..
[Silver II] 가장 긴 증가하는 부분 수열 - 11053 문제 링크 성능 요약 메모리: 31120 KB, 시간: 100 ms 분류 다이나믹 프로그래밍 제출 일자 2024년 2월 23일 09:59:36 문제 설명 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이..
[Silver III] N과 M (1) - 15649 문제 링크 성능 요약 메모리: 35556 KB, 시간: 112 ms 분류 백트래킹 제출 일자 2024년 2월 22일 12:57:58 문제 설명 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. # 순열 import from itertools import permuta..
[Silver IV] 동전 0 - 11047 문제 링크 성능 요약 메모리: 31120 KB, 시간: 40 ms 분류 그리디 알고리즘 제출 일자 2024년 2월 20일 17:22:18 문제 설명 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수..
[Bronze III] ACM 호텔 - 10250 문제 링크 성능 요약 메모리: 31120 KB, 시간: 44 ms 분류 사칙연산, 구현, 수학 제출 일자 2024년 2월 20일 15:45:12 문제 설명 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는..
728x90
반응형