본문 바로가기
728x90

알고리즘316

[C++] 백준 14719 빗물 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 문제 해결 높이의 기준을 잡아야 한다. 가장 끝 왼쪽과 오른쪽이 모두 가장 높은 길이이면 쉽제 $\sum (min(*가장 왼쪽 높이, *가장 오른쪽 높이)-i)*(w-2)$ ($i=1,2,3...$)라는 것을 알 수 있다 여기서 관점을 바꾸어 $i$를 기준으로 생각을 해보면 $i$보다 왼쪽,오른쪽 모든 방향에 블록의 높이중 $i$번째 높이보다 큰 것이 있다면 $min(왼쪽 높이중.. 2023. 8. 29.
[python] 백준 1201 NMK https://www.acmicpc.net/problem/1201 1201번: NMK 첫째 줄에 세 정수 N, M, K가 주어진다. www.acmicpc.net 문제 해결 먼저 수열을 구할 수 있기 위한 n의 범위를 알아야한다. m+k-1 ≤ n ≤ m*k 이다. n이 가장 작을 때는 [1, 2, 3, .. . m, m-1, m-2, . . . m+k-1] 수열이며 n이 가장 클 때는 [k,k-1,k-2, . . . 1, 2*k, 2*k-1, . . . k+1, . . . m*k, m*k-1, . . . (m-1)*k + 1] 이다. n이 범위 안에 들어오면 처음으로 k개의 숫자를 내림차순해서 k개의 내림차순을 만든다. 이제 k+1~n까지 정렬해서 m-1개의 오름차순 수열을 만들어야한다. 여기서부터 너무.. 2023. 8. 27.
[C++] 백준 2671 잠수함식별 https://www.acmicpc.net/problem/2671 2671번: 잠수함식별 입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함의 엔진 소리에 해당하는 스트링이면 "SUBMARINE"을 출력하고 www.acmicpc.net 문제 해결 C++ 정규식 사용할 수 있는지 문제 regex로 정규식을 사용할 수 있다. regex로 정규식 조건을 저장하고 regex_match로 문자열이 정규식 조건에 부압한지 확인할 수 있다. CODE #include #include using namespace std; int main() { string s; cin >> s; cout 2023. 8. 26.
[python] 백준 2671 잠수함식별 https://www.acmicpc.net/problem/2671 2671번: 잠수함식별 입력에 들어있는 스트링을 읽고, 이것이 잠수함의 엔진소리를 나타내는 스트링인지 아니면 그냥 물속의 잡음인지를 판정한 후, 잠수함의 엔진 소리에 해당하는 스트링이면 "SUBMARINE"을 출력하고 www.acmicpc.net 문제 해결 정규식을 사용할 수 있는지 문제 re.compile 로 주어진 정규식 조건을 확인하는 식을 만들 수 있고 fullmatch 로 조건을 만족하는지 만족하지 않는지 확인할 수 있다. CODE import sys input = sys.stdin.readline import re n = str(input().rstrip()) pattern = re.compile("(100+1+|01)+") r.. 2023. 8. 26.
728x90