목록알고리즘 (193)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/2535 2535번: 아시아 정보올림피아드 첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사 www.acmicpc.net 풀이 코드 N = int(input()) students = [] for student_index in range(N): student_info = list(map(int, input().split(' '))) students.append(student_info) students.sort(key=lambda student: student[2], reverse=Tr..
문제 링크 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 코드 n, m = map(int, input().split()) s = [] def f(): if len(s) == m: print(' '.join(map(str, s))) return for i in range(1, n + 1): if i in s: continue s.append(i) f() s.pop() f() 코드 해석 DPS를 기반으로 풀이한다. 수열을 저장하기 위한 리..
문제 링크 https://www.acmicpc.net/problem/11292 11292번: 키 큰 사람 민우는 학창시절 승부욕이 강해서 달리기를 할 때에도 누가 가장 빠른지를 중요하게 생각하고, 시험을 볼 때에도 누가 가장 성적이 높은지를 중요하게 생각한다. 이번에 반에서 키를 측정하였 www.acmicpc.net 풀이 코드 students = [] while True: N = int(input()) if N == 0: break else: for student_index in range(N): student = input().split(' ') student[1] = float(student[1]) students.append(student) max_height = max(students, key=l..
문제 링크 https://www.acmicpc.net/problem/13015 13015번: 별 찍기 - 23 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 풀이 코드 n = int(input()) for i in range(1, n + 1): if i == 1 or i == 2 * n: print("*" * n + " " * (2 * (n - 1) - 1) + "*" * n) elif i != n: print(" " * (i - 1) + "*" + " " * (n - 2) + "*" + " " * (2 * (n - i) - 1) + "*" + " " * (n - 2) + "*") else: print(" " * (i - 1) + "*" + " " * (n - 2) + ..
문제 링크 https://www.acmicpc.net/problem/2485 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net 풀이 코드 import sys from math import gcd N = int(sys.stdin.readline()) a = int(sys.stdin.readline()) arr = [] for i in range(N-1): num = int(sys.stdin.readline()) arr.append(num - a) a = num g = arr[0] for j in range..
문제 링크 https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net 풀이 코드 n = int(input()) c = [] for i in range(n): c.append(int(input())) c.sort(reverse = True) result = 0 for i in range(2,len(c),3): result += c[i] print(sum(c)-result) 코드 해석 받은 수를 3개 단위로 끊은 뒤 각각 세번째로 오는 수를 뺀 나..
문제 링크 https://www.acmicpc.net/problem/5555 5555번: 반지 당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을 www.acmicpc.net 풀이 코드 find_string = input() N = int(input()) string_ring_count = 0 for ring_index in range(N): ring = input() ring += ring if ring.find(find_string) != -1: string_ring_count += 1 print(string_ring_count) 코드 해석 반지에 새겨진 문자열을 ..
문제 링크 https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 풀이 코드 score = [] for i in range(8): score.append(int(input())) temp = [] answer = 0 for i in range(5): answer += max(score) temp.append(score.index(max(score)) + 1) score[score.index(max(score))] = -1 temp.sort() ..