본문 바로가기

Algorithm705

[구현/수학] 백준 14490 백대열 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 14490번: 백대열 n과 m이 :을 사이에 두고 주어진다. (1 ≤ n, m ≤ 100,000,000) www.acmicpc.net 2. 문제 풀이 두 수의 최대공약수로 나누어서, 최소의 자연수로 비를 표현하는 문제입니다. 2022.02.05 - [Algorithm] - [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 [Algorithm] 최대공약수(GCD) 구하기: 유클리드 호제법 유클리드 호제법을 이용하면 두 수의 최대공약수를 구할 수 있습니다. 최대공약수는 두 수의 공통인 최대 약수를 말합니다. [ Contents ] 1. 유클리드 호제법 (Euclidean Algorithm) 두 자연수 X, Y가 있을 star7sss.tistor.. 2022. 3. 5.
[구현/수학] 백준 1267 핸드폰 요금 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 1267번: 핸드폰 요금 동호가 저번 달에 이용한 통화의 개수 N이 주어진다. N은 20보다 작거나 같은 자연수이다. 둘째 줄에 통화 시간 N개가 주어진다. 통화 시간은 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 2. 문제 풀이 핸드폰 요금을 계산해서 더 싼 요금제를 출력하는 문제입니다. 1) 영식 요금제: 30초마다 10원씩 청구 2) 민식 요금제: 60초마다 15원씩 청구 통화시간이 대개 30초 이하라면 영식 요금제가 저렴하고, 30초 이상이면 민식 요금제가 저렴합니다. 3. 코드 N = int(input()) call = list(map(int, input().split())) y = 0 #영식 요금제 m = 0 #민식 요금.. 2022. 3. 5.
[구현/수학] 백준 3053 택시 기하학 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net 2. 문제 풀이 택시 기하학에서의 원 넓이를 구하는 문제입니다. 문제만 이해한다면 쉽게 풀 수 있습니다. 두 점 T1(x1, y1), T2(x2, y2) 사이의 거리는 택시 기하학: D(T1, T2) = | x1-x2 | + | y1-y2 | 유클리드 기하학: D(T1, T2) = rout( (x1-x2)^2 + (y1-y2)^2 ) 선형대수에서는 택시 기하학의 식을 'L1 norm', 유클리드 기하학의 식을 'L2 norm'이라고도 합.. 2022. 3. 5.
[구현/수학] 백준 11098 첼시를 도와줘! - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 11098번: 첼시를 도와줘! 구단이 성적을 내지 못한다면 답은 새 선수 영입뿐이다. 이것은 오늘날 유럽 리그에서 가장 흔한 전략이고, 노르웨이의 로젠버그 팀은 이러한 전략이 성공한 대표적 예시다. 그들은 많은 스카 www.acmicpc.net 2. 문제 풀이 선수들 중 가장 비싼 선수를 출력하는 문제입니다. 3. 코드 import sys input = sys.stdin.readline #입력 n = int(input()) #테스크케이스 for _ in range(n): p = int(input()) #선수 수 player = dict() for i in range(p): cost, name = input().rstrip().split() player[na.. 2022. 3. 4.
[탐색/BFS] 백준 7569 토마토 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 2. 문제 풀이 익은 토마토 주위로 위아래, 동서남북으로 안 익은 토마토가 있으면 익습니다. 모든 토마토가 익으려면 총 며칠이 걸리는지 구해야 합니다. 2022.02.24 - [Algorithm] - [탐색/BFS] 백준 7576 토마토 - Python [탐색/BFS] 백준 7576 토마토 - Python [ Contents ] 1. 문제 (링크 참조) 7576번: 토마토 첫 줄에는 상자의 .. 2022. 3. 4.
[구현/수학] 백준 6064 카잉 달력 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 2. 문제 풀이 카잉 달력에서 해는 몇 번째 해인지 구하는 문제입니다. 한 해가 지날 때마다 x와 y를 1씩 더하며 x는 M+1진법을, y는 N+1진법을 따릅니다. M = 2, N = 3, x = 2, y = 1일 때 1) 1:1 2) 2:2 3) 1:3 4) 2:1 위 예시는 4번째 해가 답이 됩니다. x와 y 모두 1씩 더해나가므로, Z번째 해는 와 같습니다.. (부터 시작으로 가정) 이 때 구해야할 답은 x = .. 2022. 3. 4.
[자료구조/해시] 백준 4358 생태학 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 2. 문제 풀이 나무 개수를 세고, 사전순으로 분포도를 출력하는 문제입니다. 2022.02.12 - [Algorithm] - [자료구조/해시] 백준 1620 나는야 포켓몬 마스터 이다솜 - Python [자료구조/해시] 백준 1620 나는야 포켓몬 마스터 이다솜 - Python [ Contents ] 1. 문제 (링크 참조) 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓.. 2022. 3. 4.
[구현/수학] 백준 2355 시그마 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 2355번: 시그마 첫째 줄에 두 정수 A, B가 주어진다. (-2,147,483,648 ≤ A, B ≤ 2,147,483,647) www.acmicpc.net 2. 문제 풀이 A부터 B까지 등차가 1인 등차수열의 합을 구하는 문제입니다. (B-A+1) * (A+B) / 2 A부터 B까지의 등차수열의 합은 위 공식으로 구할 수 있습니다. 이 공식과 유명한 가우스의 일화가 있죠. 초등학교 때 이 공식을 생각해내서, 1부터 100까지 덧셈을 단숨에 계산했다는... 맨 앞과 맨 뒤를 합한 값은 한 칸씩 안쪽으로 이동해도 똑같습니다. 1+100, 2+99, 3+98... (등차수열이기 때문에) 따라서 두 수의 합을 등차수열의 절반 길이만큼만 곱해주면 쉽게 구할 수.. 2022. 3. 3.
[구현/문자열] 백준 18406 럭키 스트레이트 - 파이썬(Python) [ Contents ] 1. 문제 (링크 참조) 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 2. 문제 풀이 앞부분의 숫자 합과 뒷 부분의 숫자합이 같은지 판별하는 문제입니다. 3. 코드 #입력 N = input() pre = 0 #앞부분 for i in range(len(N)//2): pre += int(N[i]) post = 0 #뒷부분 for i in range(len(N)//2, len(N)): post += int(N[i]) if pre == post: print("LUCKY") else: print("READY") 문자열로 입력받은 다음, 각 자릿.. 2022. 3. 3.