분류 전체보기 1004

[백준] 2579 - 계단 오르기

문제 문제 : https://www.acmicpc.net/problem/2579 계단 오르기 게임은 계단 아래인 시작점부터 꼭대기인 도착점까지 가는 게임이다. 계단을 밟으면 계단에 쓰여있는 점수를 얻는다. 예로 들어 시작점에서 첫번째, 두번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 30 = 75점이 된다. 계단을 오를 때는 다음의 규칙을 지켜야 한다. 한 번에 한 계단 또는 두 계단 씩 오를 수 있다. 연속된 세 개의 계단을 모두 밟아서는 안된다. 단, 시작점은 계단에 포함되지 않는다. 도착 계단은 반드시 밟아야 한다. 각 계단에 쓰여 있는 점수가 주어질 때 이 게임에서 얻을 수 있는 총 점수의 최댓값을 구하는 프로그램을 작성하시오. 접근 dp 문제다!..

Algorithm/백준 2024.04.12

[Airflow] 웹에서 여러 Task를 한 번에 클리어하기

개요 Airflow를 사용하다보면 여러 Task 인스턴스를 클리어하거나 상태를 변경하는 등의 작업을 할 때가 있다. 이 때 Task 인스턴스가 적으면 하나씩 처리하면 되지만, 많은 경우에는 한 번에 처리하고 싶기 마련이다. 물론 Airflow 서버에서 CLI로 처리하면 되는데 (참고 : 2022.11.15 - [Airflow] Clear - Task 재실행), 최근에 웹에서도 처리할 수 있다는 걸 새로 알게 되어 적어둔다. 방법 1. 상단 메뉴 > Browse > Task Instances 이동 2. 처리할 Task 인스턴스 검색 및 선택 검색 기능을 이용해 처리할 Task를 찾은 뒤, 처리할 Task 인스턴스를 선택한다. 3. Actions에서 원하는 작업 선택 Task 인스턴스를 클리어하거나 상태를 ..

Apache Airflow 2024.04.11

[백준] 2193 - 이친수

문제 문제 : https://www.acmicpc.net/problem/2193 이진수란 0과 1로만 이루어진 수를 말한다. 그중 0으로 시작하지 않으면서 1이 두 번 연속 나타나지 않는 수(1, 10, 100, 101)를 이친수(pinary number)라고 한다. 0010101, 101101은 0으로 시작하거나 1이 연속으로 나타나므로 이친수가 아니다. 수의 길이를 입력받아 해당 길이의 이친수의 개수를 구하여라. 접근 2024.04.04 - [백준] 11057 - 오르막 수와 비슷한 면이 있는데, 마지막 자리의 값에 따라 다음에 올 수 있는 수가 정해져 있다는 점이 특징이다. 1이 연속으로 나올 수 없다는 이친수의 성질을 만족해야 하기 때문이다. 따라서 숫자가 1로 끝나면 다음 길이의 이친수는 0으로..

Algorithm/백준 2024.04.10

[백준] 1890 - 점프

문제 문제 : https://www.acmicpc.net/problem/1890 각 칸에 수가 적힌 N * N 크기의 게임판이 있다. 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프하여 이동하는 것이다. 각 칸에 적힌 수는 현재 칸에서 갈 수 있는 거리를 뜻한다. 단, 0은 종착점을 의미한다. 오른쪽이나 아래쪽으로만 이동할 수 있고, 한 번 점프하는 중간에 방향을 바꿀 수 없다. 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 이동할 수 있는 경로의 수를 구하여라. 접근 2024.04.08 - [백준] 11048 - 이동하기와 비슷한 문제인데, '이동하기'는 한 번에 한 칸씩 움직이는 반면 '점프'는 이동할 수 있는 칸의 수가 정해져 있지 않다. 때문에 현재 위치..

Algorithm/백준 2024.04.09

[백준] 11048 - 이동하기

문제 문제 : https://www.acmicpc.net/problem/11048 1 * 1 크기의 방에 사탕이 놓여져 있는 N * M 크기의 미로가 있다고 하자. 미로의 가장 왼쪽 윗 방의 좌표는 (1,1)이고, 가장 오른쪽 아랫방 좌표는 (N, M)이다. 또한 사람이 (r, c) 좌표의 방에 위치하고 있으면 (r+1, c), (r, c+1), (r+1, c+1) 방향으로만 이동할 수 있고, 방을 방문할 때마다 방에 놓여진 사탕을 모두 가져갈 수 있다. 사람이 (1,1) 좌표 방에서 (N, M) 좌표 방으로 미로를 빠져나온다고 할 때, 가져올 수 있는 사탕 개수의 최대값을 구하여라. 접근 이 문제도 동적 계획법과 관련된 문제다. 현재 위치한 방을 어떻게 왔는지 고려해보면 아래 그림을 떠올릴 수 있다. ..

Algorithm/백준 2024.04.08

[백준] 10844 - 쉬운 계단 수

문제 문제 : https://www.acmicpc.net/problem/10844 45656과 같이 인접한 자리수의 차이가 1인 수를 계단 수라고 한다. 수의 길이 n이 주어질 때, 길이가 n인 계단 수의 계수를 구하여라. 단, 0부터 시작하는 수는 계단 수가 아닌 것으로 취급한다. 접근 이 문제는 2024.04.04 - [백준] 11057 - 오르막 수와 비슷하게 동적 계획법으로 접근할 만한 문제다. 수의 길이가 1일 때, 계단 수의 1부터 9까지 수가 해당된다. 그리고 수의 길이가 2인 경우, 각 자리 수 마다 계단 수는 다음과 같이 생성할 수 있다. 개수를 표시하면 아래 그림과 같다. 참고로 0으로 시작하는 수의 개수는 다음 길이의 계단 수의 개수를 구할 때 구하기 위해서 구해야 한다. 즉, 숫자 ..

Algorithm/백준 2024.04.05

[백준] 11057 - 오르막 수

문제 문제 : https://www.acmicpc.net/problem/11057 오르막 수란 수의 자릿수가 오름차순을 이루는 수를 말한다. 이때 인접한 두 수의 값이 같아도 오름차순을 준수하는 것으로 판단한다. 예로 들어 2234, 3678, 1119은 오르막 수이다. 하지만 2232, 3676, 91111은 오르막 수가 아니다. 수의 길이 N이 주어졌을 때 오르막 수의 개수를 구하여라. 수는 0으로 시작할 수 있다. 단, 결괏값은 10007로 나눈 수로 출력한다. + 다른 사람의 풀이를 참고했다. 접근 동적 계획법으로 접근하면 좋은 문제다. 수의 길이가 1인 경우, 오르막 수는 0, 1, 2, 3 …… 9가 해당된다. 수의 길이가 2인 경우, 첫번째 자리의 수에 따라 다음으로 올 수 있는 수의 개수는..

Algorithm/백준 2024.04.04

[Python] warnings - warning 메세지 무시하기

개요 Python으로 프로그래밍을 하다 보면 자연스럽게 여러 가지 종류의 경고 메세지를 보게 된다. 당장 해결해야 하는 문제는 아지만 추후 오류로 발전할 수 있기 때문에 확인한 메세지에 대해서 조치하는 편이 좋지만, 여러 가지 이유로 조치할 수 없을 수도 있다. 다만 과다한 경고 메세지로 인해 실행 로그가 지나치게 길어지게 되는 경우에는, 스토리지 용량과 관련된 문제를 야기할 수 있다. 따라서 이런 경우에는 로그 메세지를 무시할 수 있도록 조치할 필요가 있다. 이번 글에서는 warnings 모듈을 이용해 경고 메세지를 출력하지 않도록 하는 방법을 적어둔다. warnings 개발자는 프로그램 실행 도중 예외가 발생하거나 프로그램을 종료된다고 보장할 수 없는 특정 조건에 대해 경고할 필요가 있을 때 경고 메..

Python 2024.04.03

[Istio] Helm을 이용한 설치

개요 2024.03.06 - [Istio] 다운로드 및 설치에서 istioctl을 이용해 istio를 설치해 보았다. 다만 보통 쿠버네티스 환경에서 애플리케이션을 설치할 때 Helm을 많이 이용하므로, 이번 글에서는 Helm을 이용해 Istio를 설치해보려고 한다. 레포지터리 추가 istio 관련 차트가 저장된 레포지터리를 추가한다. helm repo add istio https://istio-release.storage.googleapis.com/charts helm repo update Chart 설치 1. 네임스페이스 생성 kubectl create namespace istio-system 2. Istio-base 차트 배포 Istio 동작에 필요한 CRD 생성을 위해 배포한다. helm insta..

Kubernetes 2024.04.02

[백준] 10448 - 유레카 이론

문제 문제 : https://www.acmicpc.net/problem/10448 삼각수 Tn(n ≥ 1)는 그림에서와 같이 기하학적으로 일정한 모양의 규칙을 갖는 점들의 모음으로 표현될 수 있다. 또한 자연수 n에 대해 다음과 같은 공식을 만족한다. $$ T_n = 1 + 2 + 3 + ... + n = n(n+1)/2 $$ 1796년, 가우스는 모든 자연수가 최대 3개의 삼각수의 합으로 표현될 수 있다고 증명하였다. $$ 4 = T_1 + T_2 $$ $$ 5 = T_1 + T_1 + T_2 $$ $$ 6 = T_2 + T_2 = T_3 $$ $$ 10 = T_1 + T_2 + T_3 = T_4 $$ 이 증명은 가우스가 다이어리에 “Eureka! num = Δ + Δ + Δ” 라고 적음으로써 유레카 ..

Algorithm/백준 2024.04.01