목록CodingTest/Python (74)
기록방
👉 문제링크 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net 🔸 문제 분석 🔸 재료 선택에 따라 신맛과 쓴맛의 합이 변한다. 신맛(s)은 곱으로 계산한다. 쓴맛(b)은 합으로 계산한다. 신맛과 쓴맛의 차이의 최소값을 출력한다. 🔸 코드 🔸 n = int(input()) taste = [] visit = [0] * n answer = 1000000000 for _ in range(n): taste.append(list(map(int,input().split()))) def dfs(d, m,..
👉 문제링크 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net 🔸 문제 분석 🔸 최소비용으로 세 꽃을 심을 수 있는 최소 비용을 출력한다. 모든 경우의 수를 탐색해야하는 브루트 포스 문제이다. 🔸 코드 🔸 import sys input = sys.stdin.readline N = int(input()) flower = [] visit = [[0]*N for _ in range(N)] answer = 200*16 dx = [0, 0, -1, 0, 1] dy = [0, -1, 0, 1, 0] for i in ran..
👉 문제링크 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 🔸 문제 분석 🔸 1과 n을 제외한 약수의 수와 목록이 입력된다. n을 출력한다. 🔸 코드 🔸 import sys n = int(sys.stdin.readline()) arr = list(map(int,sys.stdin.readline().rstrip().split())) arr.sort() print(arr[0]*arr[-1]) 🔸 코드 해석 🔸 빠른 입력을 사용했다. 약수 리스트를 입력받고 오름차순 정렬한다. 가장 앞과 가장 뒤 원소를 곱..
👉 문제링크 4101번: 크냐? 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 두 정수가 주어진다. 두 수는 백만보다 작거나 같은 양의 정수이다. 입력의 마지막 줄에는 0이 www.acmicpc.net 🔸 문제 분석 🔸 입력받은 두 수 중에 첫 번째 수가 크면 "Yes", 아니면 "No"를 출력한다. 0 0이 입력될 때까지 반복한다. 🔸 코드 🔸 x, y = map(int,input().split()) while x != 0 and y!= 0: if x > y: print("Yes") else: print("No") x, y = map(int,input().split()) 🔸 코드 해석 🔸 0 0이 입력될 때까지 while 반복으로 입력받고 계산한다. 🔸..
👉 문제링크 17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net 🔸 문제 분석 🔸 입력받은 n을 제곱수의 합으로 표현할 때 최소한의 경우의 수를 출력한다. dp 와 브루트 포스 풀이 두 가지가 가능하다. dp dp[n] 리스트는 n을 만드는데 들어가는 '제곱수 합 경우의 수의 최소값'을 저장한다. dp[0] = 0, dp[1] = 1 로 초기화한다. dp[n]을 구할 때, 1부터 j의 제곱수(j**2)가 i보다 커질때까지 반복하며 최소값을 찾는다. min_v : i에서 j**2를..