2024/06/28 6

[백준 12891번] DNA 비밀번호

https://www.acmicpc.net/problem/12891import sysinput = sys.stdin.readline# DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열# 임의의 DNA 문자열을 만들고 만들어진 DNA 문자열의 부분문자열을 비밀번호로 사용# 부분문자열에서 등장하는 문자의 개수가 특정 개수 이상이여야 비밀번호로 사용할 수 있다# 단, 부분문자열이 등장하는 위치가 다르다면 부분문자열이 같다고 하더라도 다른 문자열로 취급한다.s_length, p_length = map(int,input().split())string = input().rstrip()a, c, g, t = map(int,input().split())dictionary =..

[백준 2531번] 회전 초밥

https://www.acmicpc.net/problem/2531import sysfrom collections import deque# 회전하는 벨트 위에 여러 가지 종류의 초밥이 접시에 담겨 놓여 있고, 손님은 이 중에서 자기가 좋아하는 초밥을 골라서 먹는다# 1. 벨트의 임의의 한 위치부터 k개의 접시를 연속해서 먹을 경우 할인된 정액 가격으로 제공# 2. 각 고객에게 초밥의 종류 하나가 쓰인 쿠폰을 발행하고, 1번 행사에 참가할 경우 이 쿠폰에 적혀진 종류의 초밥 하나를 추가로 무료로 제공# (만약 이 번호에 적혀진 초밥이 현재 벨트 위에 없을 경우, 요리사가 새로 만들어 손님에게 제공)input = sys.stdin.readlinen, d, k, c = map(int,input().split()..

[백준 21921번] 블로그

https://www.acmicpc.net/problem/21921import sys # X일 동안 가장 많이 들어온 방문자 수와 기간 # 첫째 줄에 X일 동안 가장 많이 들어온 방문자 수를 출력 # 만약 최대 방문자 수가 0명이라면 SAD를 출력 # 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력 n, x = map(int,input().split()) input = sys.stdin.readline visit_counts = list(map(int,input().split())) # 1. 시간복잡도 O(N^2) 풀이 # answer = 0 # count = 0 # for i, value in enumerate(visit_counts): # if 0 max_value: m..

[백준 2559번] 수열

https://www.acmicpc.net/problem/2559import sys input = sys.stdin.readline n, k = map(int,input().split()) temp_list = list(map(int,input().split())) value = sum(temp_list[:k]) answer = value for i in range(k,n): value -= temp_list[i-k] value += temp_list[i] answer = max(answer,value) print(answer)이번 문제는 N일 동안 측정된 온도에서 연속 K일간 측정했을 때의 최댓값을 구하는 문제이다. 해당 문제는 단순히 완전탐색으로 풀게되면 O(N*K)의 시간복잡도가 나오게 되는데, N..

슬라이딩 윈도우(Sliding Window) 알고리즘 이란 ?

1) 슬라이딩 윈도우 알고리즘 개념고정된 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터를 활용해 문제를 풀이하는 알고리즘을 말합니다. 즉, 이미 한번 구했던 값을 재사용하는 것이 핵심입니다.  배열이나 리스트의 요소의 일정 범위의 값을 비교하거나 연산할 때 사용하면 매우 유용합니다.  문제풀이시 주로 사용되는 경우에는 배열과 그 부분배열을 어떤 조건하에서 계산하는 경우에 주로 사용됩니다. 예를 들어 구간 합 구하기, 부분 문자열 구하기등에 활용될 수 있습니다. 2) 슬라이딩 윈도우 동작원리슬라이딩 윈도우 알고리즘은 연속되는 투 포인터와 유사하게 부분 배열들을 활용하여 특정 조건을 일치시키는 알고리즘이지만, 부분 배열의 길이(크기)가 고정적 입니다.선형 공간(1차원 배열)을 2회 이상 반복적으로 탐..