BOJ 185

백준 4153번 직각삼각형 파이썬

https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 내 답안 while True: x, y, z = map(int, input().split()) if (x or y or z) == 0: break else: if z == (x**2 + y**2)**0.5 or y == (x**2 + z**2)**0.5 or x == (y**2 + z**2)**0.5: print('right') else: print('wrong')

BOJ/Python 2022.03.09

백준 13417번 카드문자열 파이썬

https://www.acmicpc.net/problem/13417 13417번: 카드 문자열 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처 www.acmicpc.net 내 답안 from collections import deque for _ in range(int(input())): N = int(input()) card = input().split() q = deque() q.append(card[0]) st = card[0] # 기준 for i in range(1, len(card)): if st >= card[i]: q.appendleft(card[i]) ..

BOJ/Python 2022.03.09

백준 1026번 보물 파이썬

https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 내 답안 N = int(input()) x = sorted(list(map(int, input().split()))) y = list(map(int, input().split())) y.sort(reverse = True) cnt = 0 for i in range(N): cnt += x[i]*y[i] print(cnt) 몇번생각을 해보다가 나온 결론은 x 는 오름 차순 정렬 y 는 내림 차..

BOJ/Python 2022.03.09

백준 11723번 집합 파이썬

https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 내 답안 import sys input = sys.stdin.readline S = [0] * 21 for _ in range(int(input())): x = input().split() if x[0] == 'add': if S[int(x[1])] == 0: S[int(x[1])] = 1 else: continue elif x[0] == 'remove': if S[int(x[1])] == 1: S[int(x[1])] = 0 els..

BOJ/Python 2022.03.08

백준 2153번 소수 단어 파이썬

https://www.acmicpc.net/problem/2153 2153번: 소수 단어 소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자. 알파벳 대소문자로 이루어진 영어 단어가 하나 www.acmicpc.net 내 답안 def is_prime(n): if n == 1: return True for i in range(2, int(n**0.5)+1): if n % i == 0: return False return True x = list(input()) cnt = 0 for i in x: if i.isupper(): cnt += (ord(i) - 64) else: cnt += (or..

BOJ/Python 2022.03.07

백준 2581번 소수 파이썬

https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 내 답안 def is_prime(n): if n == 1: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True M, N = int(input()) N = int(input()) lst = [] for i in range(M, N + 1): if is_prime(i): lst.append(i) if le..

BOJ/Python 2022.03.06

백준 3009번 네 번째 점 파이썬

https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 내 답안 x = [] for i in range(3): a, b = map(int, input().split()) x.append([a, b]) print(x[0][0]^x[1][0]^x[2][0], x[0][1]^x[1][1]^x[2][1]) 난이도는 어떻게 풀어도 쉽겠지만 XOR을 기록하기 위해 작성 했다. 맨 마지막줄의 ^ 는 XOR 의 비트 연산자 이다. 배타적 논리합으로 문제를 해결하였다. 예를들어 5 ^ 5 ^ 7 은 0 ^ 7 로 나타 낼수 있고, 0 ^ 7 은 7..

BOJ/Python 2022.03.05

백준 2839번 설탕 배달 파이썬

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 내 답안 N = int(input()) cnt = 0 while True: if (N % 5) == 0: cnt += (N // 5) print(cnt) break N -= 3 cnt += 1 if N < 0: print(-1) break 이 문제를 동적 프로그래밍으로 푸는 방법도 있다. 하지만 DP 공부를 덜 했기 때문에 내가 생각하는 알고리즘대로 코드를 짰다. N이 5의 배수가 되는 순간 나눠주게 된다면..

BOJ/Python 2022.03.03

백준 24542번 튜터-튜티 관계의 수 파이썬

https://www.acmicpc.net/problem/24542 24542번: 튜터-튜티 관계의 수 첫째 줄에 튜터-튜티 관계를 정하는 경우의 수를 $1\,000\,000\,007$로 나눈 나머지를 출력한다. www.acmicpc.net 내 답안 import sys from collections import deque input = sys.stdin.readline N, M = map(int, input().split()) graph = [[] for _ in range(N + 1)] for _ in range(M): a, b = map(int, input().split()) graph[a].append(b) graph[b].append(a) visited = [0] * (N + 1) def bfs(..

BOJ/Python 2022.02.28

백준 1075번 나누기 파이썬

https://www.acmicpc.net/problem/1075 1075번: 나누기 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. www.acmicpc.net 내 답안 N = int(input()) F = int(input()) nature = N lst = [] while (str(N)[-2:] != '00'): N -= 1 if N%F == 0: lst.append(str(N)[-2:]) if len(lst) > 0: print(min(lst)) else: for i in range(nature, 20000000001): if i % F == 0: print(str(i)[-2:]..

BOJ/Python 2022.02.27
반응형
목차(index)