MapleStory Finger Point

백준 알고리즘 11

백준 알고리즘 2609번 최대공약수와 최소공배수 (파이썬)

문제: 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. # 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. a, b = map(int, input().split()) # 유클리드 호제법 (최대공약수 구하기) def gcd(m,n): # 기본 전제로 m이 n보다 더 큰 수이어야 한다 if m < n: # n이 더 크면 자리를 바꿔준 m, n = n, m if n == 0: # 만약 두 수 중에 하나가 0이..

백준 알고리즘 2022.08.19

백준 알고리즘 2775번 부녀회장이 될테야 (파이썬)

문제: 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수..

백준 알고리즘 2022.08.17

백준 알고리즘 2480번 주사위 세개 (파이썬)

문제: 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받..

백준 알고리즘 2022.08.15

백준 알고리즘 1085번 직사각형에서 탈출 (파이썬)

문제: 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 첫째 줄에 x, y, w, h가 주어진다. # 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. # 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. # 첫째 줄에 x, y, w, h가 주어진다. # 이 문제는 현재 좌표에서 직사각형까지 최소 길이를 구하는 문제이다. # 최소 길이는 상하좌우 모두 될 수 있으며 현재는 알 수 없다. x, y, w, h = ma..

백준 알고리즘 2022.08.15

백준 알고리즘 1193번 분수찾기 (파이썬)

문제: 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. # 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자. # # X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오. # 1번 째 - 1 # 2번 째 - 2, 3 # 1/2 2/1 # 3번 째 - 4, 5, 6 # 3/1 2/2 1/3 # 4번 째 - 7, 8, 9, 10 # 1/4 2/3 3/2 4/1 # 5번 째 - 11, 12, ..

백준 알고리즘 2022.08.14

백준 알고리즘 1929번 소수 구하기 (파이썬)

문제: M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. from math import sqrt M, N = map(int, input().split()) for i in range(M, N + 1): if i == 1: continue for j in range(2, int(sqrt(i)) + 1): if i % j == 0: break else: print(i) 코드 설명: from math import sqrt M, N = map(int, input().split()) # M 이상, N이하 만큼 반복 for i in range(M, N + 1): if i == 1: # 1은 소수가 될 수 없다 continue # 이 방법은 '에토스테네스의 체' 라는 빠른 소수 찾기 방법이다 # 예를들어 ..

백준 알고리즘 2022.08.09

백준 알고리즘 10250번 ACM 호텔 (파이썬)

문제 : 방 번호는 YXX 나 YYXX 형태인데 여기서 Y 나 YY 는 층 수를 나타내고 XX 는 엘리베이터에서부터 세었을 때의 번호를 나타낸다. 즉, 그림 1 에서 빗금으로 표시한 방은 305 호가 된다. 손님은 엘리베이터를 타고 이동하는 거리는 신경 쓰지 않는다. 다만 걷는 거리가 같을 때에는 아래층의 방을 더 선호한다. 예를 들면 102 호 방보다는 301 호 방을 더 선호하는데, 102 호는 거리 2 만큼 걸어야 하지만 301 호는 거리 1 만큼만 걸으면 되기 때문이다. 같은 이유로 102 호보다 2101 호를 더 선호한다. 여러분이 작성할 프로그램은 초기에 모든 방이 비어있다고 가정하에 이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다. 첫 번째 손님은 101 호..

백준 알고리즘 2022.08.08

백준 알고리즘 2869번 달팽이는 올라가고 싶다 (파이썬)

문제 : 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. import math A, B, V = map(int, input().split()) print(math.ceil((V - B) / (A - B))) 코드 설명 : import math A, B, V = map(int, input().split()) # 기본 수식은 (A - B) * x >= V 이다. # x를 기준으로 모두 이항하면, x >= V / (A - B) 가 되는데, # 분자인 V를 그..

백준 알고리즘 2022.08.05