목록Algorithm (160)
alpyrithm_알파이리즘
5052 전화번호 목록 https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 문제 전화번호 목록이 주어진다. 이때, 이 목록이 일관성이 있는지 없는지를 구하는 프로그램을 작성하시오. 전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없� www.acmicpc.net 문제 풀기 전 공부할 것 : 트라이(Trie) 풀이 1 전화번호 목록을 받아서 정렬을 하면 prefix의 가능성이 있는 번호가 앞뒤로 정렬된다. 따라서 바로 뒤에 있는 번호만 확인하면 된다. import sys input = sys.stdin.readline t = int(input()) for _ in range(t): n = int(input()) nums = [input(..
1700 멀티탭 스케줄링 https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 문제 풀기 전 공부할 것 : 그리디 알고리즘 풀이 1 전기용품의 이름 list인 kind를 for문으로 돌면서 kind[i]가 이미 plug에 꽂혀있으면 continue로 넘어간다. plug에 구멍이 남아있으면 kind[i]를 꽂고 넘어간다. kind[i]가 plug에 꽂혀있지 않으면서 plug에 구멍이 남아있지 않다면 idx를 저장할 idxs list를 만들고 plug에..
1747 소수&팰린드롬 https://www.acmicpc.net/problem/1747 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 문제 풀기 전 공부할 것 : 소수 구하는 방법, 에라토스테네스, 팰린드롬 풀이 1 에라토스테네스의 체를 이용해서 1,000,000 이하의 범위에서 소수를 찾는다. 그리고 n보다 크거나 같으면서 1,000,000보다 작거나 같은 수에서 팰린드롬인 수를 먼저 찾아준다. 팰린드롬인 수면 소수인지 위에서 구한 prime을 통해 확인한다. 만약 ..
1205 등수 구하기 https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 송유진의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000�� www.acmicpc.net 문제 풀기 전 공부할 것 : 문제 해석 풀이 1 0
1449 수리공 항승 https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 문제 풀기 전 공부할 것 : 정렬, 반복문 풀이 1 새는 곳 위치 한 곳을 막기 위해서는 길이가 1인 테이프 1개가 필요하다. 새는 곳의 위치부터 테이프를 붙였다면 테이프의 길이만큼 떨어진 곳까지 막을 수 있다. 새는 곳의 위치를 오름차순으로 정렬한다. 새는 곳의 위치는 자연수이므로 1로 초기화를 하고 현재 막을 수 있는 곳도 leak의 0번째(새는 곳의 가장..
1946 신입 사원 https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성�� www.acmicpc.net 문제 풀기 전 공부할 것 : python 입출력 방법(sys.stdin.readline) 풀이 1 서류 등수를 기준으로 먼저 정렬 정렬된 지원자는 본인 앞에 위치한 지원자들을 interview 성적들 중 가장 좋은 성적이면(숫자가 가장 작으면) 선발된다. 시간초과가 될 수 있으므로 import sys를 사용한다. import sys input = sy..
8979 올림픽 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 � www.acmicpc.net 문제 풀기 전 공부할 것 : 정렬, 구현 풀이 1 n, k를 입력받는다. 국가별 메달 수를 리스트로 입력받는다. 정렬 sort() 함수를 이용해서 금, 은, 동 많은 순서로 정렬한다. 최종 등수를 grade로 사이에 등수가 같을 경우를 count할 s를 초기화한다. grade를 1로 초기화하는 경우는 등수는 1등부터 시작하기 때문이다. medals[i][0..
2816 디지털 티비 https://www.acmicpc.net/problem/2816 2816번: 디지털 티비 문제 2012년 12월 31일 새벽 4시부터 지상파 아날로그 TV방송이 종료되었다. TV를 자주보는 할머니를 위해서, 상근이네 집도 디지털 수신기를 구입했다. 원래 상근이네 집에는 KBS1과 KBS2만 나왔다. �� www.acmicpc.net 문제 풀기 전 공부할 것 : 문자열 처리, 그리디 알고리즘 문제 힌트 : 예제 입력 1을 넣었을 때 예제 출력 1로 반드시 출력되지 않아도 괜찮다. 본인의 규칙대로 KBS1과 KBS2를 첫 번째 두 번째 있도록 만들면 된다. 풀이 1 - KBS1를 첫 번째로, KBS2를 두 번째로 순서를 바꾸는 방법을 구하는 것으로 1, 2, 3, 4번을 모두 사용할 ..