반응형

파이썬 알고리즘 7

[파이썬, Python] 백준 1057: 토너먼트

문제 https://www.acmicpc.net/problem/1057 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 코드 n, a, b = map(int, input().split()) cnt = 0 while True: cnt += 1 if (a+1) // 2 == (b+1) // 2: print(cnt) break else: a = (a+1) // 2 b = (b+1) // 2 n, a, b = map(int, input().split()) cnt = 0 while a != b: cnt += 1 a -= a ..

[파이썬, Python] 백준 11399: ATM

문제 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) time = sorted(list(map(int, input().split()))) cnt = 0 for i in range(n): cnt += time[i] * (n-i) print(cnt) 설명 먼저 하는 사람의 시간이 짧을수록, 결괏값이 작아지므로 시간을 오름차순으로 정렬해 준다. 이후 시간을 cnt에 더해주는데,..

[파이썬, Python] 백준 11050: 이항 계수 1

문제 https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 코드 from math import factorial n, k = map(int, input().split()) ans = factorial(n) / (factorial(k)*(factorial(n-k))) print(int(ans)) 설명 기본 모듈 math에 있는 팩토리얼 함수를 통해서 문제를 풀이했다. 이항 계수의 식은 다음과 같다. ​따라서 식에 맞춰 계산을 해서 출력해 주면 된다.

[파이썬, Python] 백준 4153: 직각삼각형

문제 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 코드 while True: nums = list(map(int, input().split())) if sum(nums) == 0: break max_num = max(nums) nums.remove(max(nums)) if nums[0]**2 + nums[1]**2 == max_num**2: print("right") else: print("wrong") 설명 직각 삼각형의 변의 길이는 피타고라스의 정리를 이..

[파이썬, Python] 백준 2563: 색종이

문제 https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 코드 import sys input = sys.stdin.readline t = int(input()) area = [[0]*100 for _ in range(100)] for _ in range(t): x,y = map(int, input().split()) for i in range(x, x+10): for j in range(y, y+10): area[i][j] = 1 cnt = 0 for..

[파이썬, Python] 백준 1193: 분수찾기

문제 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 코드 import sys input = sys.stdin.readline x = int(input()) line = 0 max_num = 0 while x > max_num: line += 1 max_num += line gap = max_num - x if line%2 == 0: top = line - gap bot = gap + 1 else: top = gap + 1 bot = line - gap print('%d/%d'%(top,bot)) 설명 홀수 라인과 짝수 라인의 규칙과 x에 따른 라인의 규칙을 찾으면 해결이 가..

[파이썬, Python] 백준 11720: 숫자의 합

문제 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 코드 N = int(input()) num = list(input()) sumnum = 0 for i in range(N): sumnum += int(num[i]) print(sumnum) 설명 다른 언어는 복잡한 방법을 사용해야 하는데, 파이썬은 그냥 일반적인 계산으로 하면 된다.

반응형