본문 바로가기

반응형

Algorithm

(53)
BOJ 11501 주식 (python) BOJ 11501 주식 Silver 2 참고 문제 2021.04.20 - [Algorithm] - SWEA 1859 백만 장자 프로젝트 (python) 문제 홍준이는 요즘 주식에 빠져있다. 그는 미래를 내다보는 눈이 뛰어나, 날 별로 주가를 예상하고 언제나 그게 맞아떨어진다. 매일 그는 아래 세 가지 중 한 행동을 한다. 주식 하나를 산다. 원하는 만큼 가지고 있는 주식을 판다. 아무것도 안한다. 홍준이는 미래를 예상하는 뛰어난 안목을 가졌지만, 어떻게 해야 자신이 최대 이익을 얻을 수 있는지 모른다. 따라서 당신에게 날 별로 주식의 가격을 알려주었을 때, 최대 이익이 얼마나 되는지 계산을 해달라고 부탁했다. 예를 들어 날 수가 3일이고 날 별로 주가가 10, 7, 6일 때, 주가가 계속 감소하므로 최대..
SWEA 1859 백만 장자 프로젝트 (python) 1859. 백만 장자 프로젝트 D2 참고문제 2021.04.20 - [Algorithm] - BOJ 11501 주식 (python) 문제 25년 간의 수행 끝에 원재는 미래를 보는 능력을 갖게 되었다. 이 능력으로 원재는 사재기를 하려고 한다. 다만 당국의 감시가 심해 한 번에 많은 양을 사재기 할 수 없다. 다음과 같은 조건 하에서 사재기를 하여 최대한의 이득을 얻도록 도와주자. 원재는 연속된 N일 동안의 물건의 매매가를 예측하여 알고 있다. 당국의 감시망에 걸리지 않기 위해 하루에 최대 1만큼 구입할 수 있다. 판매는 얼마든지 할 수 있다. 예를 들어 3일 동안의 매매가가 1, 2, 3 이라면 처음 두 날에 원료를 구매하여 마지막 날에 팔면 3의 이익을 얻을 수 있다. [입력] 첫 번째 줄에 테스트 ..
SWEA 5189 전자카트 (python) 5189. [파이썬 S/W 문제해결 구현] 2일차 - 전자카트 D3 문제 골프장 관리를 위해 전기 카트로 사무실에서 출발해 각 관리구역을 돌고 다시 사무실로 돌아와야 한다. 사무실에서 출발해 각 구역을 한 번씩만 방문하고 사무실로 돌아올 때의 최소 배터리 사용량을 구하시오. 각 구역을 이동할 때의 배터리 사용량은 표로 제공되며, 1번은 사무실을, 2번부터 N번은 관리구역 번호이다. 두 구역 사이도 갈 때와 올 때의 경사나 통행로가 다를 수 있으므로 배터리 소비량은 다를 수 있다. N이 3인 경우 가능한 경로는 1-2-3-1, 1-3-2-1이며 각각의 배터리 소비량은 다음과 같이 계산할 수 있다. e[1][2]+e[2][3]+e[3][1] = 18+55+18 = 91 e[1][3]+e[3][2]+e[2][..
SWEA 4835 구간합 (python) 4835. [파이썬 S/W 문제해결 기본] 1일차 - 구간합 D2 문제 N개의 정수가 들어있는 배열에서 이웃한 M개의 합을 계산하는 것은 디지털 필터링의 기초연산이다. M개의 합이 가장 큰 경우와 가장 작은 경우의 차이를 출력하는 프로그램을 작성하시오. 다음은 N=5, M=3이고 5개의 숫자 1 2 3 4 5가 배열 v에 들어있는 경우이다. v 1 2 3 4 5 이웃한 M개의 합이 가장 작은 경우 1 + 2 + 3 = 6 이웃한 M개의 합이 가장 큰 경우 3 + 4 + 5 = 12 답은 12와 6의 차인 6을 출력한다. [입력] 첫 줄에 테스트 케이스 개수 T가 주어진다. ( 1 ≤ T ≤ 50 ) 다음 줄부터 테스트케이스의 첫 줄에 정수의 개수 N과 구간의 개수 M 주어진다. ( 10 ≤ N ≤ 100..
SWEA 4834 숫자카드 (python) 4834. [파이썬 S/W 문제해결 기본] 1일차 - 숫자 카드 D2 문제 0에서 9까지 숫자가 적힌 N장의 카드가 주어진다. 가장 많은 카드에 적힌 숫자와 카드가 몇 장인지 출력하는 프로그램을 만드시오. 카드 장수가 같을 때는 적힌 숫자가 큰 쪽을 출력한다. [입력] 첫 줄에 테스트 케이스 개수 T가 주어진다. ( 1 ≤ T ≤ 50 ) 다음 줄부터 테스트케이스의 첫 줄에 카드 장수 N이 주어진다. ( 5 ≤ N ≤ 100 ) 다음 줄에 N개의 숫자 ai가 여백없이 주어진다. (0으로 시작할 수도 있다.) ( 0 ≤ ai ≤ 9 ) [출력] 각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 가장 많은 카드의 숫자와 장 수를 차례로 출력한다. 풀이 import sys sys.stdin = o..
SWEA 4831 전기버스 (python) 4831. [파이썬 S/W 문제해결 기본] 1일차 - 전기버스 D3 연관문제 2021.04.21 - [Algorithm] - SWEA 5208 전기버스2 (python) 문제 A도시는 전기버스를 운행하려고 한다. 전기버스는 한번 충전으로 이동할 수 있는 정류장 수가 정해져 있어서, 중간에 충전기가 설치된 정류장을 만들기로 했다. 버스는 0번에서 출발해 종점인 N번 정류장까지 이동하고, 한번 충전으로 최대한 이동할 수 있는 정류장 수 K가 정해져 있다. 충전기가 설치된 M개의 정류장 번호가 주어질 때, 최소한 몇 번의 충전을 해야 종점에 도착할 수 있는지 출력하는 프로그램을 만드시오. 만약 충전기 설치가 잘못되어 종점에 도착할 수 없는 경우는 0을 출력한다. 출발지에는 항상 충전기가 설치되어 있지만 충전횟..
SWEA 4828 min_max (python) 4828. [파이썬 S/W 문제해결 기본] 1일차 - min max D2 문제 N개의 양의 정수에서 가장 큰 수와 가장 작은 수의 차이를 출력하시오. [입력] 첫 줄에 테스트 케이스의 수 T가 주어진다. ( 1 ≤ T ≤ 50 ) 각 케이스의 첫 줄에 양수의 개수 N이 주어진다. ( 5 ≤ N ≤ 1000 ) 다음 줄에 N개의 양수 ai가 주어진다. ( 1 ≤ ai≤ 1000000 ) [출력] 각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다. 풀이 T = int(input()) # 필요한 함수선언 def min_max(numbers): # 맥스 초기값 설정 max_value = 0 # min 초기값 설정 min_value = numbers[0] # 반복문 통해 맥스값,최소값 ..
SWEA 5188 최소합 (python) 5188. [파이썬 S/W 문제해결 구현] 2일차 - 최소합 D3 문제 그림처럼 NxN 칸에 숫자가 적힌 판이 주어지고, 각 칸에서는 오른쪽이나 아래로만 이동할 수 있다. 맨 왼쪽 위에서 오른쪽 아래까지 이동할 때, 지나는 칸에 써진 숫자의 합계가 최소가 되도록 움직였다면 이때의 합계가 얼마인지 출력하는 프로그램을 만드시오. 1 2 3 2 3 4 3 4 5 그림의 경우 1, 2, 3, 4, 5순으로 움직이고 최소합계는 15가 된다. 가능한 모든 경로에 대해 합을 계산한 다음 최소값을 찾아도 된다. [입력] 첫 줄에 테스트케이스의 수 T가 주어진다. 1 N-1 or y > N-1: continue if not visited[y][x]: visited[y][x] = 1 road(cx, cy, total + ..

반응형