목록알고리즘 (193)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/2628 2628번: 종이자르기 아래 과 같이 직사각형 모양의 종이가 있다. 이 종이는 가로방향과 세로 방향으로 1㎝마다 점선이 그어져 있다. 가로 점선은 위에서 아래로 1번부터 차례로 번호가 붙어 있고, 세로 점선 www.acmicpc.net 풀이 코드 r, c = map(int, input().split()) row = [0, r] column = [0, c] for _ in range(int(input())): r_or_c, linenumber = map(int, input().split()) if r_or_c == 1: row.append(linenumber) else : column.append(linenumber) row.so..
문제 링크 https://www.acmicpc.net/problem/5800 5800번: 성적 통계 첫째 줄에 중덕 고등학교에 있는 반의 수 K (1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 각 반의 학생수 N (2 ≤ N ≤ 50)과 각 학생의 수학 성적이 주어진다. 시험 성적은 0보다 크거나 같고, 100보다 www.acmicpc.net 풀이 코드 k = int(input()) student = [] for j in range(1,k+1): student = list(map(int,input().split())) student = student[1:] s_student = sorted(student) lg = 0 for i in range(0,len(s_student)-1): if s_stu..
문제 링크 https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 풀이 코드 s = input() alp = ['U', 'C', 'P', 'C'] i = 0 for a in alp: if a in s: i += 1 s = s[s.index(a) + 1:] else: print('I hate UCPC') break if i == 4: print('I love UCPC') 코드 해석 인덱스 슬라이싱을 이용하여 풀이하였다.
문제 링크 https://www.acmicpc.net/problem/1343 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 풀이 코드 board = input() board = board.replace("XXXX", "AAAA") board = board.replace("XX", "BB") if 'X' in board: print(-1) else: print(board) 코드 해석 파이썬의 replace 함수를 사용하여 쉽게 풀 수 있다.
문제 링크 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..