BOJ/Python 177

백준 1453번 피시방 알바 파이썬

https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net N = int(input()) x = list(map(int, input().split())) x.sort()# point pre = 0 cnt = 0 for i in x: if i == pre: cnt += 1 pre = i print(cnt) 파이썬에는 쉽게 정렬할 수 있는 sort 기능이 있다. 세번째 줄의 sort를 안써서 처음엔 틀렸다. 정렬을 안쓴다면 64 7 8 64 이럴때 다른 값이 나오는 경우가 발생한다.

BOJ/Python 2022.01.08

백준 1302번 베스트셀러 파이썬

https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net lst = [] for i in range(int(input())): lst.append(input()) x = list(set(lst)) # 중복될시 사전순 x.sort() Max = 0 name = '' for i in x: y = lst.count(i) # 분류 if y > Max: Max = y name = i print(name) 핵심은 4번째 줄에 세트로 묶은다음 리스트로 다시 ..

BOJ/Python 2022.01.07

백준 11557번 Yangjojang of The Year 파이썬

https://www.acmicpc.net/problem/11557 11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net for i in range(int(input())): name = '' Max = 0 for i in range(int(input())): x, y = input().split() y = int(y) if y > Max: name = x Max = y print(name) 숫자만 비교하여 최댓값 구하듯이 알고리즘을 비슷하게 짰다.

BOJ/Python 2022.01.06

백준 11047번 동전 0 파이썬

https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 답안 n, k = map(int, input().split()) coin = [] cnt = 0 for _ in range(n): coin.append(int(input())) coin.sort(reverse = True) for i in coin: if k >= i: cnt += (k // i) k %= i print(cnt) 그리..

BOJ/Python 2021.12.28

백준 10872번 팩토리얼 파이썬

https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net def factorial(n): if n != 0: return n * factorial(n-1) else: return 1 print(factorial(int(input()))) 재귀 함수를 표현하여 구현을 하면 된다. 또한 k = 1 n = int(input()) while n != 0: k *= n n -= 1 print(k) 반복문을 통해서도 충분히 구현 할 수 있다.

BOJ/Python 2021.11.18

백준 1676번 팩토리얼 0의 개수 파이썬

https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net def factorial(n): if n != 0: return n * factorial(n-1) else: return 1 x = factorial(int(input())) x = str(x) cnt = 0 for i in x[::-1]: if i == '0': cnt += 1 else: break print(cnt) 팩토리얼 계산을 재귀함수를 통해 코드를 짰고, 그 값을 문자열로 바꾸고 뒤집어 준 다음 for 문으로 0이 아닌 수가 나올 때까지 하나하나 돌려서 count를 해주었다.

BOJ/Python 2021.11.17

백준 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
반응형
목차(index)