일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- W3Schools
- dynamic
- 프로그래밍
- 백준
- 기초
- Programming
- String
- c++
- 오류
- Material
- loop
- guide
- Basic
- Unreal Engine 5
- python
- C#
- DP
- 재귀
- parameter
- UE5
- Algorithm
- Tutorial
- github
- 시작해요 언리얼 2022
- 파이썬
- dfs
- w3school
- Unity
- Class
- 문제풀이
- Today
- Total
목록백준 (108)
행복한 개구리

우선 유클리드 호제법에 대하여 알아야합니다. 유클리드 호제법 - 위키백과, 우리 모두의 백과사전 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 ko.wikipedia.org 유클리드 호제법은 최대공약수를 구할 때 사용되는 방법이며 큰 수(A)를 작은 수(B)로 나누어 그 나머지를 이용하여 최대공약수를 구하는 방법입니다. def gcd(m, n): if m < n: m, n = n, m if n == 0: return m else: return gcd(n, m % n) a, b = map(int, input().split()) div = gc..

n = int(input()) div = sorted(list(map(int, input().split()))) if n == 1: print(pow(div[0], 2)) else: print(div[0]*div[-1]) 약수의 개수가 1일때와 아닐때로 나뉩니다. N의 약수는 자기자신과 1을 제외한 수이므로 약수의 개수가 1이라면 N = 약수² 이 됩니다. 약수의 개수가 2이상이라면 약수 중 (가장 큰 값*가장 작은 값) = N 입니다. 따라서 약수들을 받은 후 리스트를 정렬한 후 div[0] * div[-1] = N이 성립합니다.

while True: a, b = map(int, input().split()) if a == 0 and b == 0: break elif b % a == 0: print("factor") elif a % b == 0: print("multiple") else: print("neither") 0, 0을 입력하기 전에는 계속 반복될 수 있도록 while True로 반복문을 실행합니다. 조건문으로 0, 0 을 입력받으면 종료되게해줍니다. 첫번째 수가 두번째 수의 약수라면 factor를 출력해줍니다. 첫번째 수가 두번째 수의 배수라면(=두번째 수가 첫번째 수의 약수라면) multiple을 출력합니다. 마지막으로 둘 다 아니라면 neither를 출력합니다.

n = int(input()) dis = list(map(int, input().split())) prices = list(map(int, input().split())) result = 0 val = prices[0] for i in range(len(dis)): result += (dis[i] * val) if val > prices[i+1]: val = prices[i+1] print(result) 거리값과 기름값 리스트를 따로 만듭니다. 새롭게 방문한 도시의 기름값이 저렴할 경우, 해당 도시에서 주유를 해가는게 저렴합니다. 따라서 반복을 통해 n번째 도시까지 갈 비용을 기름값과 거리값을 토대로 계산하고 드는 기름값을 새로운 도시마다 갱신해줍니다.

m = input().split("-") num = [] for i in m: sum = 0 n = i.split("+") for j in n: sum += int(j) num.append(sum) result = num[0] for k in range(1, len(num)): result -= num[k] print(result) 우선 주어진 문제를 보면 기호는 "+"와 "-"만 사용됩니다. 수식의 처음과 끝은 숫자이므로 시작하는 수는 무조건 양수입니다. 하지만 그 이후의 수들은 괄호를 통해 모두 음수로 만들 수 있습니다. ex) 1 - 2 + 3 - 4 + 5 => 1 - (2 + 3) - (4 + 5) 따라서 "-"기호를 기준으로 받은 문자열을 나눠줍니다. 반복문을 통해 num리스트에 m의 요소들의..

n = int(input()) time = list(map(int, input().split())) time.sort() result = 0 for i in range(n): result += time[i] * (n-i) print(result) 문제의 본문을 봤을때, 시간의 합은 5P₁ + 4P₂ + 3P₃ + 2P₄ + P₅ 입니다. 따라서 가장 시간이 적게 걸리는 사람부터 시작해야합니다. 입력받은 리스트를 정렬해줍니다. 리스트를 반복문을 통해서 시간의 합을 구합니다.