목록Python (169)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/16212 16212번: 정열적인 정렬 형준이는 수열을 하나 가지고 있다. 형준이는 수열을 정열적으로 정렬해보려 한다. 과연, 정렬할 수 있을까? www.acmicpc.net 풀이 코드 n = int(input()) m = list(map(int,input().split())) m.sort() print(*m) 코드 해석 수열을 받아서 띄어쓰기로 구분하여 리스트 형식으로 저장한다. 그 후 정렬을 하고 출력한다.
문제 링크 https://www.acmicpc.net/problem/14405 14405번: 피카츄 피카츄는 "pi", "ka", "chu"를 발음할 수 있다. 따라서, 피카츄는 이 세 음절을 합친 단어만 발음할 수 있다. 예를 들면, "pikapi"와 "pikachu"가 있다. 문자열 S가 주어졌을 때, 피카츄가 발음할 수 있는 문 www.acmicpc.net 풀이 코드 s = input() s = s.replace("pi", " ") s = s.replace("ka", " ") s = s.replace("chu", " ") if len(s.strip()) == 0: print("YES") else: print("NO") 코드 해석 문자열을 받은 뒤 replace를 이용하여 pi,ka,chu를 공백으로..
문제 링크 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개 단위로 끊은 뒤 각각 세번째로 오는 수를 뺀 나..