목록구현 (35)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 풀이 코드 n = int(input()) one = int(input()) vote = [] count = 0 for _ in range(n - 1): vote.append(int(input())) vote.sort(reverse=True) if n == 1: print(0) else: while vote[0] >= one: one += 1 vote[0] -= 1 count ..
문제 링크 https://www.acmicpc.net/problem/1251 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 풀이 코드 import sys word = list(map(str, sys.stdin.readline().rstrip("\n"))) res = [] for i in range(1, len(word) - 1): for j in range(i + 1, len(word)): first = word[:i] second = word[i:j] third = word[j:] first.reverse(..
문제 링크 https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 풀이 코드 n, new, p = map(int, input().split()) if n == 0: print(1) else: score = list(map(int, input().split())) if n == p and score[-1] >= new: print(-1) else: res = n + 1 for i in range(n): if score[i]
문제 링크 https://www.acmicpc.net/problem/10994 10994번: 별 찍기 - 19 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 풀이 코드 N = int(input()) for i in range(N - 1): print("* " * i + "*" * (1 + 4 * (N - i - 1)) + " *" * i) print("* " * (i + 1) + " " * (1 + 4 * (N - i - 2)) + " *" * (i + 1)) print("* " * (2 * N - 1)) for i in range(N - 1): print("* " * (N - i - 1) + " " * (1 + 4 * i) + " *" * (N - i - 1)) pri..
문제 링크 https://www.acmicpc.net/problem/2491 2491번: 수열 0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾 www.acmicpc.net 풀이 코드 N = int(input()) arr = list(map(int, input().split())) cnt = 1 max_l = 1 for i in range(1, N): if arr[i-1] >= arr[i]: cnt += 1 else: cnt = 1 if max_l < cnt: max_l = cnt cnt = 1 for i in range(1, N): if arr[i-1]
문제 링크 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/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차원 리스트 형식으로 저장..