목록파이썬 (140)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/1969 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 풀이 코드 n, m = map(int, input().split()) arr = [] for i in range(n): arr.append(list(map(str, input()))) cnt, hap = 0, 0 result = '' for i in range(m): a, c, g, t = 0, 0, 0, 0 for j in range(n):..
문제 링크 https://www.acmicpc.net/problem/13241 풀이 코드 a, b = map(int, input().split()) def gcd(a, b): while b: mod = b b = a % b a = mod return a print(a*b//gcd(a, b)) 코드 해석 a와 b의 최소공배수는 a x b / gcd(a,b) 이다. gcd를 구하면 된다.
문제 링크 https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 풀이 코드 n = int(input()) cnt = 0 i = 0 while True: if n % 5 == 0: cnt += n//5 break else: n -= 2 cnt += 1 if n < 0: break if n
문제 링크 https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 풀이 코드 for _ in range(int(input())): a = int(input()) su1 = set(map(int, input().split())) b = int(input()) su2 = list(map(int, input().split())) for n in su2: print(1 if n in su1 else 0) 코드 해석 간단하게 풀 수 있는 문제이다. 수를 받은 뒤 s..
문제 링크 https://www.acmicpc.net/problem/13301 13301번: 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개 www.acmicpc.net 풀이 코드 n = int(input()) arr = [0]*(n+2) arr[1] = 1 for i in range(2, n+2): arr[i] = arr[i-1] + arr[i-2] print((arr[n]+arr[n+1])*2) 코드 해석 피보나치 수열을 이용하는 문제이다. ((n번째 정사각형 한 변의 길이) + (n+1 번째 정사각형 한 변의 길이)) * 2 = 둘레 라는 둘레 증가..
문제 링크 https://www.acmicpc.net/problem/1783 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 코드 n, m = map(int, input().split()) if n == 1: print(1) elif n == 2: print(min(4, (m-1)//2+1)) elif m
문제 링크 https://www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 코드 li = [] for _ in range(int(input())): n, d, m, y = input().split() li.append([n, int(d), int(m), int(y)]) li.sort(key=lambda x:(x[3],x[2],x[1])) print(li[-1][0]) print(li[0][0]) 코드 해석 간단한 정렬 문제이다. li라는 리스트를 만든 뒤 입력받은 값을 n, d, m, y로 나누어서 li에 2차원 리스트 형식으로 저장..
문제 링크 https://www.acmicpc.net/problem/2331 2331번: 반복수열 첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다. www.acmicpc.net 풀이 코드 from sys import stdin A, P = map(int, stdin.readline().split()) check = [A] while True: new = 0 for i in (str(check[-1])): new += int(i) ** P if new in check: while True: if new == check.pop(): print(len(check)) exit() else: check.append(new) 코드 해석 수를 계산 할 때 마다 체크 리스트에 수를 추..