Python_알고리즘
-
2740. [Python]행렬 곱셈Python_알고리즘/Silver V 2023. 3. 31. 20:27
1. 문제 https://www.acmicpc.net/problem/2740 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 구현 3. 파이썬 코드 N,M = map(int,input().split()) # 첫번째 행렬 생성 matrix_1 = [] # 첫번째 행렬 값 입력 for _ in range(N): num_list = list(map(int,input().split())) matrix_1.append(num_list) L,K..
-
2535. [Python]아시아 정보올림피아드Python_알고리즘/Silver V 2023. 3. 29. 23:32
1. 문제 https://www.acmicpc.net/problem/2535 2535번: 아시아 정보올림피아드 첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 정렬 구현 3. 파이썬 코드 N = int(input()) ans_list = [] for _ in range(N): # 인풋을 리스트 형태로 받아옴 answer = list(map(int,input().split())) # 인풋 리스트를 리스트에 추가 ans_list.append(answer) # 최대 ..
-
1817. [Python]짐 챙기는 숌Python_알고리즘/Silver V 2023. 3. 27. 23:13
1. 문제 https://www.acmicpc.net/problem/1817 1817번: 짐 챙기는 숌 첫째 줄에 책의 개수 N과 박스에 넣을 수 있는 최대 무게 M이 주어진다. N은 0보다 크거나 같고 50보다 작거나 같은 정수이고, M은 1,000보다 작거나 같은 자연수이다. N이 0보다 큰 경우 둘째 줄에 책 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB 구현 그리디 3. 파이썬 코드 N,M = map(int,input().split()) # 책이 0개일 경우 if N == 0: print(0) # 그 외의 경우 else: # 책 리스트 생성 book_list = list(map(int,input().split())) # 박스 리스트 생성 box_list =..
-
1697. [Python]숨바꼭질Python_알고리즘/Silver I 2023. 3. 9. 13:13
1. 문제 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 128MB BFS (Queue) 3. 파이썬 코드 from collections import deque N,K = map(int,input().split()) # popleft 를 사용하기 위해 deque 를 사용 => deque 의 경우 popleft 사용해도 시간 복잡도가 O(1)인 것으로 암 queue = ..
-
14425. [Python]문자열 집합Python_알고리즘/Silver III 2023. 3. 1. 00:15
1. 문제 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 1536MB 탐색 3. 파이썬 코드 import sys input = sys.stdin.readline N,M = map(int,input().split()) # 갯수 세는 변수 cnt = 0 # 체크할 리스트 check_list = [] # 단어 저장리스트 word_list= [] for _ in rang..
-
2108. [Python]통계학Python_알고리즘/Silver III 2023. 2. 25. 00:14
1. 문제 https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 256MB 구현 정렬 3. 파이썬 코드 import sys input = sys.stdin.readline N = int(input()) # sys.maxsize 사용할 경우 python 에서 낼 수 있는 최대값을 불러올 수 있다고 한다. min_value = sys.maxsize max_value = -sys.maxsize # 모든 값들을 더해줄 변수..
-
10799. [Python]쇠막대기Python_알고리즘/Silver II 2023. 2. 13. 00:44
1. 문제 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 256MB 스택 3. 파이썬 코드 # input 문자열 info = input() # 문자를 담을 리스트 stack = [] # 갯수 체크 cnt = 0 # enumerate 로 index와 value 값을 가져옴 for i,v in enumerate(info): # 여는 괄호일 경우 if v == "(": # 스택에 index 값 추가 stack...
-
1463. [Python]1로 만들기Python_알고리즘/Silver III 2023. 2. 11. 22:51
1. 문제 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 2. 접근 방법 시간 제한: 0.15초 (python 3 => 1.5초) 메모리 제한: 128MB DP(Dynamic Programming) 3. 파이썬 코드 def answer(num): # 0, 1 인 경우는 count 되는 값이 없어서 0 # 2, 3 인 경우는 한번씩 나누는 값 1이다. # 외의 10^6 까지 값이 존재하므로 10^6+1 갯수 리스트 생성 num_list = [0,0,1,1] + [0]*(10**6-2) # 4부터 시작하는 반복문 생셩 for i in range(4, 10**6..
-
2869. [Python]달팽이는 올라가고 싶다.Python_알고리즘/Bronze I 2023. 2. 10. 21:23
1. 문제 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 2. 접근 방법 시간 제한: 0.25초 메모리 제한: 128MB 규칙 찾기 3. 파이썬 코드 import math # 하루에 오르는 높이, 내려가는 높이, 정상의 높이를 변수로 받음 A, B, V = map(int,input().split()) # 오르고 내려오는 높이의 차이가 1인 경우 최종 높이에서 내려오는 높이를 뺴준 값이 답이된다. if (A-B) == 1: print(V-B) # 그 외의 경우 정상 높이에서 오를 수 있는 오전에 오를 ..
-
2493. [Python]탑Python_알고리즘/Gold V 2023. 2. 6. 21:13
1. 문제 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 2. 접근 방법 시간 제한: 1.5초 메모리 제한: 128MB 스택 3. 파이썬 코드 # 정답 코드 import sys input = sys.stdin.readline N = int(input()) # 타워들의 리스트를 받아옴 tower_list = list(map(int,input().split())) # 정답을 출력할 리스트 생성 ans_list = [0]*N # stack 리스트..