목록CodingTest/Python (74)
기록방
👉 문제링크 2816번: 디지털 티비 2012년 12월 31일 새벽 4시부터 지상파 아날로그 TV방송이 종료되었다. TV를 자주보는 할머니를 위해서, 상근이네 집도 디지털 수신기를 구입했다. 원래 상근이네 집에는 KBS1과 KBS2만 나왔다. 할머니 www.acmicpc.net 🔸 문제 분석 🔸 리스트의 1, 2 번을 원하는 채널로 바꾸는 문제이다. 1번과 2번 중 어느게 더 아래에 있나에 따라 이동해야하는 거리가 다르다. 🔸 코드 🔸 import sys input = sys.stdin.readline arr = [] for i in range(int(input())): arr.append(input().rstrip()) kbs1 = arr.index("KBS1") kbs2 = arr.index("KBS..
👉 문제링크 1547번: 공 첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것 www.acmicpc.net 🔸 문제 분석 🔸 공의 위치는 계속 첫 위치이고, 컵 끼리 자리가 변한다. 다시 말해보면 공은 상관없고, 컵을 바꾸다가 첫 번째 자리 컵이 무엇인지 출력한다. 🔸 코드 🔸 m = int(input()) cup = [1,2,3] for i in range(m): x, y = map(int,input().split()) x_idx = cup.index(x) y_idx = cup.index(y) cup[x_idx], cup[y_idx] = cup[y_..
👉 문제링크 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() 함수로 모두 곱해서 팩토리얼 값을 구했다. 팩토리얼 값을 문자열로 변환해 반전..
👉 문제링크 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..
👉 문제링크 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()))..