Python_알고리즘/Silver III
-
2512. [Python]예산Python_알고리즘/Silver III 2023. 7. 18. 21:20
1. 문제 https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 이분 탐색 3. 파이썬 코드 import sys N = int(input()) # 돈 리스트 받아오기 money_list = list(map(int,input().split())) # 돈의 총합 total_money = sum(money_list) # 제일 많은 돈 max_money = max(money_list) # 제한..
-
2503. [Python]숫자 야구Python_알고리즘/Silver III 2023. 7. 13. 19:15
1. 문제 https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 구현, 순열, 브루트 포스 3. 파이썬 코드 from itertools import permutations N = int(input()) # 들어온 숫자 값들을 저장할 리스트 num_list = [] # 숫자값과 스트라이크 볼을 저장할 리스트 base_list = [] # 없는 숫자를 체크할 리스트 no_list = [] # 1..
-
2597. [Python]줄자접기Python_알고리즘/Silver III 2023. 6. 17. 22:54
1. 문제 https://www.acmicpc.net/problem/2597 2597번: 줄자접기 첫째 줄에 줄자의 길이가 입력된다. 줄자의 길이는 10㎝ 이상, 1,000㎝ 이하이고 단위를 나타내는 ㎝은 입력되지 않는다. 둘째 줄에는 두 빨간 점의 위치를 나타내는 정수가 빈칸을 사이에 두고 입 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 구현 3. 파이썬 코드 N = int(input()) left = 0 right = N # 점을 순서별로 리스트로 오름차순 정렬하여 받음 red_point = sorted(list(map(int,input().split()))) blue_point = sorted(list(map(int,input().split()))) yel..
-
1449. [Python]수리공 항승Python_알고리즘/Silver III 2023. 6. 14. 23:07
1. 문제 https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 그리디 알고리즘 3. 파이썬 코드 N,L = map(int,input().split()) # 테이프 붙이는 위치 tape_list = list(map(int,input().split())) # 1000까지 존재하는 테이프 위치 tapes = [0]*1001 # 테이프를 붙인 위치 표시 for i in tape_l..
-
2346. [Python]풍선 터뜨리기Python_알고리즘/Silver III 2023. 6. 13. 23:12
1. 문제 https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 4MB 자료 구 3. 파이썬 코드 # 풍선 갯수 N = int(input()) # 풍선에 적힌 번호 num_list = list(map(int,input().split())) # 풍선 번호와 인덱스 저장 리스트 check_list = [] for i,v in enumerate(num_list): check_list.app..
-
2371. [Python]파일 구별하기Python_알고리즘/Silver III 2023. 6. 11. 22:18
1. 문제 https://www.acmicpc.net/problem/2371 2371번: 파일 구별하기 메모리에 N개의 파일이 저장되어 있다. 이 문제에서는 편의상 각각의 파일을 수열과 같이 생각하자. 이와 같은 파일들을 구별하기 위해서는 두 개의 파일을 맨 끝까지 읽어보는 작업을 수행해야 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 튜플 브루트포스 3. 파이썬 코드 import sys # 파일의 갯수 N = int(input()) # 각 파일별 길이 file_lengths = [] for _ in range(N): # 파일을 리스트 형태로 받아옴 num_list = list(map(int, input().split())) file_lengths.append(n..
-
1448. [Python]삼각형 만들기Python_알고리즘/Silver III 2023. 6. 6. 21:19
1. 문제 https://www.acmicpc.net/problem/1448 1448번: 삼각형 만들기 첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 정렬 그리디 알고리즘 3. 파이썬 코드 import sys # input 값이 많으므로 sys 사용 input = sys.stdin.readline N = int(input()) # input 값을 담을 리스트 num_list = [] for _ in range(N): num_list.append(int(..
-
1904. [Python]01타일Python_알고리즘/Silver III 2023. 6. 5. 22:59
1. 문제 https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 2. 접근 방법 시간 제한: 0.75초 메모리 제한: 256MB DP(다이나믹 프로그래밍) 3. 파이썬 코드 N = int(input()) dp = [1, 2] for i in range(2,N): dp.append((dp[i-2]+dp[i-1])%15746) print(dp[N-1]) 4. 문제를 풀고난 후 생각 문제를 읽어본 후 직접 타일의 갯수에 따른 변화를 생각해보며 코드 구현을 생각..
-
2312. [Python]수 복원하기Python_알고리즘/Silver III 2023. 6. 4. 22:22
1. 문제 https://www.acmicpc.net/problem/2312 2312번: 수 복원하기 첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스마다 양의 정수 N (2 ≤ N ≤ 100,000)이 주어진다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 정수론 3. 파이썬 코드 # 테스트 케이스 갯수 N = int(input()) # 갯수만큼 반복문 시행 for _ in range(N): # 소인수 분해할 수 number = int(input()) # 각각 몇개가 들어있는지 체크할 딕셔너리 num_dict = {} # 시작값 2부터 check = 2 # input으로 들어온 값이 1보다 큰경우 계속 반복문 while number>1: # 만약 c..