목록BOJ (335)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zdfnu/btrJ7OvaEty/kJ2W1pJmo2lmw71tg5PMT1/img.png)
👉 문제링크 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 🔸 문제 분석 🔸 입력받은 숫자의 팩토리얼 값에서 1의자리부터 0이 아닌 수가 나올때까지 0의수를 세고 출력한다. 🔸 코드 🔸 import math n = int(input()) answer = 0 for i in str(math.prod( i for i in range(1,n+1)))[::-1]: if i =="0": answer += 1 else: break print(answer) 🔸 코드 해석 🔸 for문으로 0부터 n을 나열하고 math.prod() 함수로 모두 곱해서 팩토리얼 값을 구했다. 팩토리얼 값을 문자열로 변환해 반전..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b5ILFE/btrJ7SkmOro/Swrtgqiubvowe1P1gNJge0/img.png)
👉 문제링크 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 🔸 문제 분석 🔸 땅 고르기 작업의 최소시간이며 가장 높이가 높은 상태의 시간과 높이를 출력한다. 🔸 코드 🔸 # python3 : 시간초과 , pypy3 : 통과 import sys n, m, b = map(int, sys.stdin.readline().split()) arr = [list(map(int, sys.stdin.readline().split())) for _ in range(n)] answer = sys.maxsize index = 0..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TAUwQ/btrJ8rr2foJ/kHkgmZ0pWFdAAKhWg8plR1/img.png)
👉 문제링크 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 🔸 문제 분석 🔸 나무의 수, 원하는 목재 길이, 나무들의 크기가 주어진다. 어느 높이의 절단기로 잘랐을때 최대 높이로 충분한 목재를 확보할 수 있는지 구한다. 🔸 코드 🔸 # python3 : 39% , pypy : 통과 import sys input = sys.stdin.readline N, M = map(int,input().split()) arr = list(map(int,input().split()))..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dfXD0n/btrJZOvqKsL/zcLjkc4rVoYDXmmfuQcpVK/img.png)
👉 문제링크 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 🔸 문제 분석 🔸 입력받은 숫자들의 산술평균, 중앙값, 최빈값, 범위를 출력한다. 🔸 코드 🔸 import sys from collections import Counter input = sys.stdin.readline print = sys.stdout.write N = int(input()) arr = [] for i in range(N): arr.append(int(input())) arr.sort() print(str(round(sum(arr)/N)) + "..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bbHKm1/btrJWnxB9Rh/wrzEmuOm7UVcBC5li9sGS0/img.png)
👉 문제링크 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 🔸 문제 분석 🔸 데크를 구현하는 문제이다. 🔸 코드 🔸 from collections import deque import sys input = sys.stdin.readline print = sys.stdout.write deq = deque() for i in range(int(input())): order = input().rstrip() if order[:10] == "push_front": deq.appendleft(order..