CustomBusinessHour 오프셋의 주간 마스크(weekmask) 확인하기 Pandas에서 CustomBusinessHour 오프셋에 적용된 주간 마스크(weekmask)를 확인하려면 CustomBusinessHour.weekmask 속성을 사용하면 됩니다. 이 속성은 해당 오프셋이 어떤 요일을 영업일로 인식하는지 문자열 형태로 반환해 줍니다. 1. 필요한 라이브러리 임포트 먼저 필요한 라이브러리를 임포트합니다. import pandas as pd 2. 타임스탬프 객체 설정 Pandas에서 타임스탬프(Timestamp) 객체
Pandas의 CustomBusinessHour 오프셋 객체에서 사용자 지정 업무 시간의 시작 시간을 24시간 형식으로 확인하려면 CustomBusinessHour.start 속성을 사용하면 됩니다. 이 속성은 오프셋 생성 시 지정한 업무 시작 시간을 그대로 반환합니다.1. 라이브러리 가져오기먼저 필요한 라이브러리를 임포트합니다.import pandas as pd2. 타임스탬프 설정Pandas에서 타임스탬프(Timestamp) 객체를 생성합니다.timestamp = pd.Timestamp(2021-11-14 05:20:30)3. C
Pandas에서 CustomBusinessHour 오프셋 객체를 다룰 때, 사용자 지정 업무 시간(custom business hour)의 종료 시간을 24시간 형식으로 확인하려면 CustomBusinessHour.end 속성을 사용하면 됩니다. 이 글에서는 단계별 예제 코드와 함께 그 사용 방법을 살펴보겠습니다.1. 필요한 라이브러리 가져오기먼저 pandas 라이브러리를 임포트합니다.import pandas as pd2. 타임스탬프(Timestamp) 객체 설정Pandas에서 타임스탬프 객체를 생성합니다.timestamp = pd
개요Pandas에서 특정 CustomBusinessHour 오프셋이 고정(Anchored) 상태인지 확인하려면 is_anchored() 메서드를 사용하면 됩니다. 이 메서드는 해당 오프셋이 앵커링되어 있는지 여부를 불리언 값(True/False)으로 반환합니다.CustomBusinessHour는 사용자가 직접 영업 시작 시간과 종료 시간을 지정할 수 있도록 해주는 DateOffset의 하위 클래스로, 금융 데이터 분석 등 실제 영업 시간 기준의 날짜 계산에 유용하게 활용됩니다.단계별 구현 방법1단계: 필요한 라이브러리 임포트먼저 p
주어진 타임스탬프가 사용자 지정 영업 시간(CustomBusinessHour) 오프셋에 포함되는지 확인하려면 Pandas의 CustomBusinessHour.is_on_offset() 메서드를 사용합니다. 이 메서드에 타임스탬프를 인수로 전달하면 해당 시점이 오프셋 범위 안에 있는지 여부를 True 또는 False로 반환합니다.1. 라이브러리 임포트먼저 필요한 라이브러리를 임포트합니다.import pandas as pd2. 타임스탬프 생성Pandas에서 타임스탬프(Timestamp) 객체를 설정합니다.timestamp = pd.Ti
트리의 모든 노드가 1부터 n까지 번호가 매겨져 있고, 각 노드에는 정수 값이 저장되어 있다고 가정해 봅시다. 이때 트리에서 하나의 간선을 제거하면 트리는 두 개의 부분 트리로 나뉘는데, 우리의 목표는 이 두 부분 트리의 노드 값 합의 차이가 최소가 되도록 하는 것입니다. 즉, 간선을 하나씩 제거해 가며 두 부분 트리 값 합의 차이를 계산하고, 그중 최솟값을 찾아 반환해야 합니다.트리는 간선(edge) 목록의 형태로 주어지며, 각 노드의 값들도 함께 제공됩니다.문제 예시예를 들어 다음과 같은 입력이 주어졌다고 해보겠습니다.n = 6
문제 정의 n개의 도시와 이들을 연결할 수 있는 m개의 도로가 있다고 가정해 봅시다. 시민들이 생활 필수품을 구매하려면 시장이 반드시 필요하지만, 현재 어떤 도시에도 시장이 없고 도시 간 도로 역시 아직 건설되지 않은 상태입니다. 두 도시 사이에 양방향 도로를 새로 건설할 수 있는 조건은 다음과 같습니다. 두 도시 중 한 곳에 시장이 존재할 것 시장이 있는 도시에 기존 도로를 통해 도달할 수 있을 것 도로 한 개를 짓는 비용은 x, 시장 한 개를 짓는 비용은 y로 주어집니다. 목표는 모든 도시의 시민이 시장에 접근할 수 있도록
두 개의 값 n과 m이 주어졌을 때, n × m 크기로 만들 수 있는 겸손한 행렬(humble matrix)의 총 개수를 구하는 것이 이번 문제의 목표입니다. 하나의 행렬이 겸손한 행렬이 되려면 다음 두 가지 조건을 모두 충족해야 합니다.1부터 n × m까지의 모든 정수를 정확히 한 번씩 포함해야 합니다.임의의 두 인덱스 쌍 (i1, j1)과 (i2, j2)에 대해 (i1 + j1) < (i2 + j2)라면, 반드시 Mat[i1, j1] < Mat[i2, j2]가 성립해야 합니다.쉽게 말해 왼쪽 위에서 오른쪽 아래로 향하
Amal과 Bimal이 숫자로 이루어진 배열 A 하나를 두고 게임을 한다고 가정해 보겠습니다. 게임 규칙은 다음과 같습니다.항상 Bimal이 먼저 시작합니다.각 턴마다 플레이어는 배열에서 최댓값 요소 하나를 삭제하며, 삭제된 요소의 오른쪽에 있는 모든 요소 역시 함께 삭제됩니다.두 플레이어는 번갈아 가며 게임을 진행합니다.남아 있는 모든 요소를 제거한 플레이어가 승리합니다.예를 들어 입력이 nums = [5, 2, 6, 3, 4]라면 결과는 Amal입니다. Bimal이 첫 턴에 [6, 3, 4]를 제거하면 배열은 [5, 2]로 줄어
문제 개요 Amal과 Bimal이 벽돌 게임을 하고 있다고 가정해 보겠습니다. 두 사람에게는 각 벽돌 위에 숫자가 적혀 있는 n개의 벽돌 배열 nums가 주어집니다. 게임 규칙은 다음과 같습니다. 두 플레이어는 번갈아 가며 맨 위에서 벽돌을 한 개, 두 개 또는 세 개씩 제거할 수 있습니다. 제거한 벽돌에 적힌 숫자가 해당 플레이어의 점수에 더해집니다. 항상 Amal이 먼저 시작합니다. 이때 Amal이 확보할 수 있는 최대 점수를 구하는 것이 목표입니다. 동작 예시 예를 들어 입력이 nums = [1,2,3,4,5]라면 결과는
문제 개요N명의 도둑이 금고를 털려고 하는 상황을 가정해 봅시다. 금고를 지키던 경비원이 G만큼의 시간 동안 자리를 비웠다가 돌아옵니다. 각 도둑은 금고를 털는 데 걸리는 고유한 시간이 정해져 있으며, 동시에 금고 안에 들어갈 수 있는 인원은 최대 두 명입니다. 이때 확인해야 할 것은 도둑들이 경비원에게 들키지 않고 금고를 털 수 있는지 여부입니다. 판단할 때 다음 두 가지 규칙을 염두에 두어야 합니다.한 도둑이 시간 t에 금고에 들어가고, 같은 시각 t에 다른 도둑이 나온다면, 두 사람은 실제로 동시에 금고 안에 있었던 것으로 간
0부터 n-1까지 번호가 붙은 n개의 도시와 n개의 일방통행 도로가 있다고 가정해 봅시다. i번 도시에서는 (i + 1) % n번 도시로 이동할 수 있습니다(0 → 1 → 2 → ... → N-1 → 0). 우리에게는 자동차가 한 대 있고, 연료 탱크의 용량은 cap 단위입니다. 각 도시 i에 도착하면 fuel[i] 단위의 연료를 보충할 수 있으며, i번 도시에서 (i + 1) % n번 도시로 이동하는 데는 cost[i] 단위의 연료가 필요합니다.이때, 자동차를 출발시켜 모든 도시를 한 바퀴 돌고 다시 출발한 도시로 무사히 돌아올
문제 소개 n개의 촛불이 왼쪽에서 오른쪽으로 일렬로 배치되어 있다고 가정해 봅시다. 왼쪽에서 i번째 촛불은 높이 h[i]와 색상 c[i]를 가지며, 정수 k는 1부터 k까지의 색상이 존재함을 나타냅니다. 우리가 구해야 하는 것은 엄격하게 증가하는 다채로운(colorful) 시퀀스의 총 개수입니다.여기서 증가 여부는 촛불의 높이를 기준으로 판단하며, 1부터 k까지의 모든 색상에 해당하는 촛불이 각각 최소 하나씩 포함되어 있을 때 그 시퀀스를 다채로운(colorful) 시퀀스라고 정의합니다. 답이 매우 커질 수 있으므로 최종 결과는 1
문제 개요 처음 n개의 자연수(1부터 n까지)로 이루어진 배열 A가 있다고 가정해 보겠습니다. 이때 구해야 할 것은 다음 두 가지 값입니다. S1: 배열 A에 정확히 k번의 인접 스왑(adjacent swap)을 수행한 후 만들 수 있는 서로 다른 시퀀스의 개수 S2: 배열 A에 최대 k번의 스왑(임의의 두 원소 교환 허용)을 수행한 후 만들 수 있는 서로 다른 시퀀스의 개수 여기서 인접 스왑이란 인덱스 i와 i+1에 위치한 두 원소를 맞교환하는 연산을 의미합니다. 예제로 이해하기 n = 3, k = 2가 입력으로 주어진 경우
처음 n개의 자연수로 이루어진 배열 A와 이 배열의 한 순열 P{p1, p2, ..., pn}가 있다고 가정해 봅시다. 이때 주어진 조건을 만족하는 매직 세트(magic set) 순열이 총 몇 개인지 구해야 합니다. 하나의 순열이 다음 두 규칙을 모두 만족할 때 매직 세트라고 정의합니다.k가 주어지면, 위치 a[1], a[2], ..., a[k]에 있는 원소는 양쪽 인접 원소보다 작아야 합니다. 즉, P[a[i]-1] > P[a[i]] < P[a[i]+1]l이 주어지면, 위치 b[1], b[2], ..., b[l]에 있는
문제 소개 아말(Amal)과 비말(Bimal)이 숫자 줄이기 게임을 하고 있다고 가정해 보겠습니다. 두 사람은 하나의 자연수 n을 두고 번갈아 가며 다음 규칙에 따라 수를 줄여 나갑니다. 현재 수가 2의 거듭제곱이면 그 수를 2로 나눕니다. 현재 수가 2의 거듭제곱이 아니라면, 바로 아래에 있는 2의 거듭제곱만큼 수를 줄입니다. 수를 1로 만들면 게임이 끝나며, 승자는 판정 기준에 따라 결정됩니다. 아말이 항상 먼저 시작합니다. 예를 들어 입력이 n = 19라면 출력은 Amal이 됩니다. 접근 방법 이 문제는 수를 1까지 줄이
게임 규칙과 문제 정의 1부터 n까지의 자연수로 이루어진 집합 {1, 2, ..., n}이 있다고 가정해 보겠습니다. 아말(Amal)과 비말(Bimal) 두 사람이 이 집합으로 게임을 진행하며, 규칙은 다음과 같습니다. 아말이 항상 선공입니다. 각 차례마다 현재 플레이어는 집합에 남아 있는 수 중에서 소수 p를 하나 선택한 뒤, p와 p의 모든 배수를 집합에서 제거합니다. 더 이상 선택할 수 있는 소수가 없는 플레이어가 패배합니다. 따라서 n이 주어졌을 때 최종 승자의 이름을 구하는 것이 목표입니다. 예를 들어 입력이 n = 5
문제 소개 height라는 배열이 주어졌다고 가정해 보겠습니다. 배열에는 서로 다른 높이를 가진 n개의 타워가 있으며, Amal과 Bimal 두 플레이어가 아래 규칙에 따라 게임을 진행합니다. 선공: Amal이 항상 먼저 플레이합니다. 규칙: 매 턴 현재 플레이어는 높이가 X인 타워 하나를 선택해 높이를 Y로 줄입니다. 단, 1 ≤ Y < X이며 Y는 X를 나누어떨어지게 하는 값(약수)이어야 합니다. 패배 조건: 더 이상 둘 수 있는 수가 없는 플레이어가 게임에서 패배합니다. 우리의 목표는 이 게임의 승자 이름을 구하는 것
문제 소개서로 다른 높이를 가진 n개의 탑을 담은 배열 height가 있다고 가정해 보겠습니다. 아말(Amal)과 비말(Bimal) 두 사람이 이 탑들을 가지고 게임을 진행하며, 규칙은 다음과 같습니다.아말이 항상 먼저 시작합니다.매 턴마다 현재 플레이어는 높이가 X인 탑 하나를 선택해, 각각 높이가 Z인 Y개의 탑으로 분해합니다. (단, Y × Z = X이고 X > 1, Y > 1)더 이상 분해할 수 있는 탑이 남아 있지 않아 움직일 수 없게 된 플레이어가 패배합니다.우리가 할 일은 이 게임의 승자 이름을 구하는 것입니
문제 상황Amal과 Bimal이 초콜릿을 이용한 게임을 하고 있다고 가정해 보겠습니다. 두 사람에게는 초콜릿이 하나 이상 담긴 n개의 용기가 있으며, 용기에는 1부터 N까지 번호가 붙어 있고 i번째 용기에는 count[i]개의 초콜릿이 들어 있습니다.게임 규칙은 다음과 같습니다.첫 번째 플레이어가 용기 하나를 골라 그 안에서 초콜릿을 한 개 이상 꺼냅니다.두 번째 플레이어가 비어 있지 않은 용기를 골라 같은 방식으로 초콜릿을 가져갑니다.두 사람은 이 과정을 번갈아 반복하며, 자신의 차례에 더 이상 가져갈 초콜릿이 없는 플레이어가 패