백준(Python) 풀이/수학 213

백준(Python) 15781번 헬멧과 조끼 풀이

Python으로 구현한 15781번 헬멧과 조끼 문제 풀이입니다. https://www.acmicpc.net/problem/15781 15781번: 헬멧과 조끼 입력의 첫째 줄에 맵에 존재하는 헬멧의 개수 N(N은 1000이하의 자연수)과 조끼의 개수 M(M은 1000이하의 자연수)이 주어진다. 둘째 줄에 각 헬멧의 방어력 h[i] (h[i]는 10억 이하의 자연수)가 N개 만큼 www.acmicpc.net n, m = map(int, input().split()) hat = list(map(int, input().split())) top = list(map(int, input().split())) hat = max(hat) top = max(top) print(hat + top) 1. 헬멧(hat)과 ..

백준(Python) 5613번 계산기 프로그램 풀이

Python으로 구현한 5613번 계산기 프로그램 문제 풀이입니다. https://www.acmicpc.net/problem/5613 5613번: 계산기 프로그램 입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출 www.acmicpc.net first = int(input()) while True : oper = input() if oper == '=' : break n = int(input()) if oper == '+' : first += n elif oper == '-' : first -= n elif oper == '*' : first *= n..

백준(Python) 13410번 거꾸로 구구단 풀이

Python으로 구현한 13410번 거꾸로 구구단 문제 풀이입니다. https://www.acmicpc.net/problem/13410 13410번: 거꾸로 구구단 일반적인 구구단에서 가장 큰 수는 마지막 항의 값이 제일 크다. 거꾸로 구구단에서는, 각 항에 구구단의 계산 결과로 나온 값을 뒤집어 저장을 한다. 이렇게 하면 가장 큰 값이 항상 마지막이 www.acmicpc.net n, k = map(int, input().split()) data = [] for i in range(1, k + 1) : value = str(n * i) data.append(int(value[-1::-1])) print(max(data)) 1. 반복문을 통해 k개 항의 값을 바탕으로 구구단 값을 구해 value에 할당한다..

백준(Python) 4766번 일반 화학 실험 풀이

Python으로 구현한 4766번 일반 화학 실험 문제 풀이입니다. https://www.acmicpc.net/problem/4766 4766번: 일반 화학 실험 입력은 동혁이가 측정한 혼합물의 온도가 순서대로 주어진다. 온도는 -10도와 200도 사이이고, 소수점 둘째자리까지 적혀져 있을 수도 있다. 마지막 측정 후에는 999가 주어진다. 동혁이는 온도를 www.acmicpc.net data = [] while True : n = float(input()) if n == 999 : break data.append(n) for i in range(1, len(data)) : print("%.2f" % (data[i] - data[i - 1])) 1. 값을 입력받아 data 리스트에 추가한다. 2. 입력받..

백준(Python) 14920 3n+1 수열 풀이

Python으로 구현한 14920번 3n+1 문제 풀이입니다. https://www.acmicpc.net/problem/14920 14920번: 3n+1 수열 다음의 점화식에 의해 정해지는 수열 C(n)을 생각하자: C(n+1) = C(n)/2 (C(n)이 짝수일 때) = 3*C(n)+1 (C(n)이 홀수일 때) 초항 C(1)이 자연수로 주어지면, 이 점화식은 자연수로 이루어지는 수열을 정한다. www.acmicpc.net n = int(input()) count = 0 while True : if n == 1 : count += 1 break if n % 2 == 0 : n //= 2 count += 1 else : n = 3 * n + 1 count += 1 print(count) 1. while문을..

백준(Python) 11170번 0의 개수 풀이

Python으로 구현한 11170번 0의 개수 문제 풀이입니다. https://www.acmicpc.net/problem/11170 11170번: 0의 개수 N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라. 예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다. www.acmicpc.net t = int(input()) for _ in range(t) : count = 0 n, m = map(str, input().split()) for i in range(int(n), int(m) + 1) : for j in range(len(str(i))) : if str(i)[j] == '0' : count += 1 print(..

백준(Python) 10474번 분수좋아해? 풀이

Python으로 구현한 10474번 분수좋아해? 문제 풀이입니다. https://www.acmicpc.net/problem/10474 10474번: 분수좋아해? 당신은 학생들의 기초수학 학습을 돕는 소프트웨어를 개발하는 팀의 개발자이다. 당신은 가분수를 대분수(?)로 출력하는 부분을 개발해야 한다. 진분수는 분자가 분모보다 작은 분수이다; 대분 www.acmicpc.net while True : a, b = map(int, input().split()) if a == 0 and b == 0 : break d = a // b print(f"{d} {a - (d*b)} / {b}") 1. while문을 통해 입력받은 두 수가 모두 0일때까지 반복 수행한다. 2. 대분수를 의미하는 d에 입력받은 a를 b로 나..

백준(Python) 5893번 17배 풀이

Python으로 구현한 5893번 17배 문제 풀이입니다. https://www.acmicpc.net/problem/5893 5893번: 17배 첫째 줄에 이진수 N이 주어진다. N은 최대 1000자리인 이진수이며, 0이 들어오는 경우는 없다. www.acmicpc.net n = input() result = int(n, 2) * 17 print(bin(result)[2::]) 1. 이진수 n을 입력받아 10진수 형태로 변환하여 17을 곱한다. 2. 10진수 형태로 되어 있는 result값을 다시 2진수로 변환하여 2번째 인덱스부터 출력한다.

백준(Python) 4880번 다음수 풀이

Python으로 구현한 4880번 다음수 문제 풀이입니다. https://www.acmicpc.net/problem/4880 4880번: 다음수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 수열의 연속하는 세 정수 a1, a2, a3이 한 줄에 주어진다. (-10,000 < a1, a2, a3 < 10,000) a1, a2, a3은 서로 같지 않다. 입력의 마지막 www.acmicpc.net while True : a, b, c = map(int, input().split()) if a == 0 and b == 0 and c == 0 : break if b - a == c - b : print(f"AP {c + (c-b)}") else : print(f"GP {c * (c // ..

백준(Python) 1284번 집 주소 풀이

Python으로 구현한 1284번 집 주소 문제 풀이입니다. https://www.acmicpc.net/problem/1284 1284번: 집 주소 재석이는 대문에 붙이는 (주소를 나타내는) 호수판 제작업체의 직원이다. 고객에게 전달할 호수판은 숫자와 숫자 사이 그리고 왼쪽 오른쪽으로 적당히 여백이 들어가 줘야하고 숫자마다 차지하 www.acmicpc.net while True : n = input() if int(n) == 0 : break sum_value = 2 + int(len(n)) - 1 for i in range(len(n)) : if int(n[i]) == 1 : sum_value += 2 elif int(n[i]) == 0 : sum_value += 4 else : sum_value +=..