백준 93

백준 1037번 약수 파이썬

https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net N = input() x = list(map(int,input().split())) x.sort() # 약수 정렬 if len(x) == 1: print(x[0]*x[0]) else: print(x[0]*x[len(x)-1]) N을 활용하여 풀어도 되지만 내 풀이 에서는 N이 필요없는 문제다. 약수의 갯수가 만약 하나라면 무조건 중복될수 밖에 없으니 제곱을 하여 출력을 하고, 여러개라 가정..

BOJ/Python 2021.11.16

백준 5598번 카이사르 암호 파이썬

https://www.acmicpc.net/problem/5598 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net x = input() y = '' for i in x: if i in 'ABC': y += chr(ord(i) +23) else: y += chr(ord(i) - 3) print(y) 요번 문제는 아스키 코드(ord,chr)를 활용하여 문제를 풀었다. ABC를 제외한 문자는 모두 3칸씩 뒤로 밀린 알파벳을 출력하면 되고 , ABC는 +23칸을 해서 문제..

BOJ/Python 2021.11.15

백준 23320번 홍익 절대평가 파이썬

https://www.acmicpc.net/problem/23320 23320번: 홍익 절대평가 2021년, 홍익대학교는 절대평가를 시행한다. 착한 도현이는 A학점을 받는 사람이 최대한 많았으면 한다. 시험을 응시한 학생의 수 $N$, 상대평가 시 A학점의 비율 $X\%$와 절대평가 시 A학점을 받 www.acmicpc.net lst1 = [] N = int(input()) x = list(input().split()) y , z = map(int,input().split()) for i in x: if int(i) >= z: lst1.append(int(i)) print(f'{round((N*(y/100)))} {len(lst1)}') 문제는 많이 어렵지 않았다. 사실상 N은 이 문제를 파이썬으로 코딩..

BOJ/Python 2021.11.04

백준 2747번 피보나치 수 파이썬

https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net x = 0 y = 1 z = int(input()) for i in range(z): x ,y = y , x+y print(x) 초기값 0 ,1 을 배정해놓고 반복문을 통해 수열을 만들었다.

BOJ/Python 2021.10.29

백준 23080번 스키테일 암호 파이썬

https://www.acmicpc.net/problem/23080 23080번: 스키테일 암호 첫 번째 줄에 막대의 굵기 \(K\)가 주어진다. 두 번째 줄에 알파벳 소문자만으로 구성된 암호문 \(S\)가 주어진다. www.acmicpc.net n = 0 x = int(input()) y = input() while n < len(y): print(y[n],end='') n += x 문제가 참 길었지만 간단하게 해결할 수 있는 문제였다. 반복문을 통해 첫 번째 줄에 입력한 정수만큼 두 번째 줄 문자열의 단어 하나하나씩 띄엄띄엄 출력하면 되는 것이다. ( y[0] y[3] y[6] y[9] ..) 하나하나 출력할 때마다 인덱싱이 수가 늘어나는데, 문자열 길이(len(y)) 보다 인덱싱 숫자(n)가 더 커..

BOJ/Python 2021.10.26

백준 10828번 스택 파이썬

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys stack = [] for i in range(int(sys.stdin.readline())): x = sys.stdin.readline().split() if x[0] == 'push': x[1] = int(x[1]) stack.append(x[1]) elif x[0] == 'pop': if len(stack) > 0: print(stack.pop()) el..

BOJ/Python 2021.10.26

백준 4344번 평균은 넘겠지 파이썬

https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net for i in range(int(input())): count = 0 x = list(map(int, input().split())) avg = (sum(x) - x[0]) / (len(x)-1) for i in range(1, len(x)): if x[i] > avg: count += 1 print('%.3f'%((count/(len(x)-1))*100) +'%') 리스트를 활용하여 평균 초과의 학생의 비율을 계산했고 , 마지막에는 fstring 포맷팅을 활용하여 출력 ..

BOJ/Python 2021.10.20