Programming/Algorithm 237

[백준] #1735 분수 합 python

https://www.acmicpc.net/problem/1735 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 📕 설명 📕 python의 math의 gcd를 사용하여 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 import math A, B = map(int, input().split()) C, D = map(int, input().split()) X = A * D + C * B Y = B * D print(X // math.gcd(X, Y), Y // math.gcd(X, Y))

[백준] #10798 세로읽기 python

https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 📕 설명 📕 python의 indexing을 사용하여 길이에 상관없이 받아오도록 했다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 re = [] max_ = 0 result = "" for i in range(5): re.append(input()) if max_ < len(re[i]): max_ = len(re[i]) for i in range(1,max_+1): for j in re: result +..

[백준] #25206 너의 평점은 python

https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net 📕 설명 📕 python의 indexing 으로 나누어 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 re = [] result = 0 sub = 0 for _ in range(20): re.append(input()) for i in range(20): if re[i][-2:] == 'A+': result += 4.5 * float(re[i][-6:-4]) sub += float(re[i][-6:-4]) ..

[백준] #10812 바구니 순서 바꾸기 python

https://www.acmicpc.net/problem/10812 10812번: 바구니 순서 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 📕 설명 📕 python의 indexing기법으로 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N, M = map(int ,input().split()) result = [i for i in range(1,N+1)] for _ in range(M): i, j, k = map(int,input().split()) result = result[:i-1] + result[k - 1:j]+res..

[백준] #11718 그대로 출력하기 python

https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net 📕 설명 📕 아래와 같이 try, except로 예외처리를 하여 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 while 1: try: print(input()) except: break

[백준] #9086 문자열 python

https://www.acmicpc.net/problem/9086 9086번: 문자열 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으 www.acmicpc.net 📕 설명 📕 문자열 slicing을 이용해 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 for i in range(int(input())): S = input() print(S[0]+S[-1])

[백준] #10811 바구니 뒤집기 python

https://www.acmicpc.net/problem/10811 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 📕 설명 📕 아래와 같이 for 문과 reversed를 사용하여 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N, M = map(int, input().split()) li = [i for i in range(N+1)] for _ in range(M): i,j = map(int, input().split()) li[i:j+1] = reversed(li[i:j+1]) li.remove(li[0]..

[백준] #10813 공 바꾸기 python

https://www.acmicpc.net/problem/10813 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 📕 설명 📕 반복문을 통해 swap 함수의 구조로 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N, M = map(int, input().split()) li = [i for i in range(N+1)] for _ in range(M): i,j = map(int, input().split()) tmp = li[j] li[j] = li[i] li[i] = tmp li.remove(li[0]) print..

[백준] #10810 공 넣기 python

https://www.acmicpc.net/problem/10810 10810번: 공 넣기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 www.acmicpc.net 📕 설명 📕 for 문을 통해 순회하였고, 리스트에 넣어서 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N, M = map(int, input().split()) li = [0]*(N+1) for _ in range(M): i,j,k = map(int, input().split()) for p in range(i,j+1): li[p] = k li.remove(li[0]) print(*li)