목록분류 전체보기 (188)
alpyrithm_알파이리즘
5635 생일 www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 풀기 전 공부할 것 : 정렬 풀이 이름, 일, 월, 연도를 이름과 연도+월+일로 저장한다. 정렬을 위해 월과 일이 길이가 1이면(1 - 9) 앞에 0을 붙여서 저장한다.(01 - 09) 생일을 기준으로 정렬한다. 가장 나이 적은 사람과 많은 사람을 출력한다. import sys input = sys.stdin.readline n = int(input()) lst = [] for _ in range(n): name, d, m, y = input().rstrip().spli..
11557 Yangjojang of The Year www.acmicpc.net/problem/11557 11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net 문제 풀기 전 공부할 것 : 정렬 풀이 테스트 케이스마다 학교 이름과 학교가 소비한 술의 양을 튜플 형태로 리스트에 저장한다. 리스트를 소비한 술의 양을 기준으로 정렬한다. 가장 많이 소비한 학교를 찾는다. import sys input = sys.stdin.readline t = int(input()) for _ in range(t..
11931 수 정렬하기 4 www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제 풀기 전 공부할 것 : 정렬 풀이 sort 함수를 통해 해결한다. import sys input = sys.stdin.readline n = int(input()) nums = [int(input()) for _ in range(n)] nums.sort(reverse=True) for num in nums: print(num)
2688 줄어들지 않아 www.acmicpc.net/problem/2688 2688번: 줄어들지 않아 첫째 줄에 테스트 케이스의 개수 T(1
2436 공약수 www.acmicpc.net/problem/2436 2436번: 공약수 첫째 줄에 두 개의 자연수가 빈칸을 사이에 두고 주어진다. 첫 번째 수는 어떤 두 개의 자연수의 최대공약수이고, 두 번째 수는 그 자연수들의 최소공배수이다. 입력되는 두 자연수는 2 이상 100,0 www.acmicpc.net 문제 풀기 전 공부할 것 : 수학, 정수론, 유클리드 호제법 풀이 최소공배수는 숫자1 x 숫자2 / 최대공약수이다. 최소공배수 x 최대공약수는 숫자1 x 숫자2이다. 최소공배수 / 최대공약수는 숫자1' x 숫자2'이다.(이때, 숫자1'과 숫자2'는 서로소이다.) 숫자1 = 숫자1' x 최대공약수 숫자2 = 숫자2' x 최대공약수 숫자1'+숫자2' 중 가장 작은 것을 찾으면 된다. def gcd(..
9659 돌 게임 5 www.acmicpc.net/problem/9659 9659번: 돌 게임 5 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) www.acmicpc.net 문제 풀기 전 공부할 것 : 게임 이론 풀이 두 사람이 완벽하게 게임을 진행하기 때문에 1 : SK 2 : CY(1+1) 3 : SK 4 : CY(1+3 | 3+1) 5 : SK(2+3 | 4+1) 6 : CY(3+3 | 5+1) 7 : SK(4+3 | 6+1) 규칙을 세우면 2의 배우인 경우 창영이가 2의 배수가 아닌 경우 상근이가 이긴다. n = int(input()) if n % 2 == 0: print('CY') else: print('SK')
1620 나는야 포켓몬 마스터 이다솜 www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 문제 풀기 전 공부할 것 : 자료 구조, 집합, 맵 풀이 n, m의 크기가 1보다 크거나 같고 100,000보다 작거나 같은 자연수이기 때문에 포켓몬 이름을 리스트와 맵으로 저장해야 한다. 리스트는 나중에 숫자에 해당하는 포켓몬의 이름을 찾을 때 사용한다. 맵은 문자로 해당하는 번호를 출력할 때 사용한다. import sys input = sys..
4949 균형잡힌 세상 www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 문제 풀기 전 공부할 것 : 자료 구조, 문자열, 스택 풀이 while문을 통해 반복해서 입력값을 받고 만약 입력값이 '.'이면 빠져나온다. 입력받은 string에서 ()[]을 따로 저장한다. 괄호를 확인하는 check 함수를 통해 균형 잡힌 문자열인지 아닌지 판단한다. import sys input = sys.stdin.readline def check(vps): stk ..