[Python] 알고리즘/Silver
-
[1900] 레슬러 (Python)[Python] 알고리즘/Silver 2021. 11. 3. 21:01
[문제] https://www.acmicpc.net/problem/1900 1900번: 레슬러 첫째 줄에 선수들의 수 N이 주어진다. 선수들은 1부터 N까지 번호가 붙어 있다. 다음 N개의 줄에는 한 줄에 한 선수의 힘과 그가 가진 마술 링의 힘이 주어진다. 선수 k의 정보는 k+1번째 줄에 주어 www.acmicpc.net 알고리즘 분류는 정렬 입니다. 이긴 횟수를 저장하고, 많이 이긴 순으로 정렬합니다. [코드] import sys N = int(sys.stdin.readline()) player = list() win = dict() for i in range(N): player.append(list(map(int, sys.stdin.readline().split()))) win[i] = 0 for..
-
[5648] 역원소 정렬 (Python)[Python] 알고리즘/Silver 2021. 11. 2. 21:44
[문제] https://www.acmicpc.net/problem/5648 5648번: 역원소 정렬 모든 원소가 양의 정수인 집합이 있을 때, 원소를 거꾸로 뒤집고 그 원소를 오름차순으로 정렬하는 프로그램을 작성하세요. 단, 원소를 뒤집었을 때 0이 앞에 선행되는 경우는 0을 생략해야합니 www.acmicpc.net 알고리즘 분류는 구현, 정렬 입니다. 입력의 끝은 EOF(End Of File) 입니다. [코드] import sys li = list() cnt = 0 while 1: try: ins = input() if ins == -1: break else: i_sp = ins.split() for i in i_sp: if cnt != 0: i = "".join(reversed(i)).lstrip("..
-
[1935] 후위 표기식2 (Python)[Python] 알고리즘/Silver 2021. 11. 1. 17:29
[문제] https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 알고리즘 분류는 자료 구조, 스택 입니다. 후위 표기식 입력을 받을 때, A~Z 영대문자를 받기 때문에 ASCII 코드를 이용하여 해당 자리의 값을 찾아야 합니다. (li[A - A] = li[0] / li[B - A] = li[1]) [코드] import sys N = int(sys.stdin.readline()) post = list(sys.stdin.readline().r..
-
[11478] 서로 다른 부분 문자열의 개수 (Python)[Python] 알고리즘/Silver 2021. 10. 31. 16:24
[문제] https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 알고리즘 분류는 자료구조, 문자열, 트리/해시를 사용한 집합과 맵 입니다. 서로 다른 부분 문자열을 구해야 하므로, set()을 이용하여 중복을 제거합니다. 길이 1, 2, 3, ... 을 구하기 위해서, 이중 for문을 사용합니다. 이해를 돕기 위한 영상 [코드] import sys S = list(sys.stdin.readline().rstrip()) res = set() for j in range(1, len(S) + 1): for i in range..
-
[10815] 숫자 카드 (Python)[Python] 알고리즘/Silver 2021. 10. 29. 16:50
[문제] https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 알고리즘 분류는 정렬, 이분 탐색 입니다. 2번째 줄에 입력받은 카드를 정렬하고, 4번째 줄에 입력받은 카드를 이분 탐색으로 찾아야 합니다. [코드] import sys def binary(data, find): left = 0 right = len(data) - 1 while left find: right = mid - 1 return "0" N = int..
-
[9536] 여우는 어떻게 울지? (Python)[Python] 알고리즘/Silver 2021. 10. 28. 17:06
[문제] https://www.acmicpc.net/problem/9536 9536번: 여우는 어떻게 울지? 각 테스트케이스마다 여우의 울음소리를 한 줄씩, 녹음된 순서대로 출력한다. 여우의 울음소리가 녹음되어 있음이 보장된다. (알려진 것과는 달리, 여우는 모스 부호로 의사소통하지 않는다.) www.acmicpc.net 알고리즘 분류는 문자열, 파싱 입니다. set()을 이용하면, 섞여있는 울음소리 - 여우를 제외한 울음소리 = 여우의 울음소리를 얻을 수 있습니다. set()은 중복된 것을 없애므로 완벽한 여우의 울음소리는 아닙니다. [코드] import sys T = int(sys.stdin.readline()) for i in range(T): sound = sys.stdin.readline().s..
-
[9414] 프로그래밍 대회 전용 부지 (Python)[Python] 알고리즘/Silver 2021. 10. 27. 13:48
[문제] https://www.acmicpc.net/problem/9414 9414번: 프로그래밍 대회 전용 부지 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 땅값 Li가 한 줄에 하나씩 주어지며, 0은 테스트 케이스의 마지막을 나타낸다. 각 테스트 케이스마다 상근이가 구 www.acmicpc.net 알고리즘 분류는 수학, 정렬, 사칙연산 입니다. 땅값은 매년 오르므로, 땅을 최소의 가격으로 구매하기 위해선 비싼 땅을 먼저 구매해야 합니다. 돈이 부족한 경우도 조건을 걸어주어야 합니다. [코드] import sys T = int(sys.stdin.readline()) for i in range(T): li = list() res = 0 money = 5 * ..