Python_알고리즘/Gold IV
-
1106. [Python]호텔Python_알고리즘/Gold IV 2025. 4. 9. 03:20
1. 문제 https://www.acmicpc.net/problem/1106 2. 접근 방법 시간 제한: 2초메모리 제한: 128MB배낭 문제다이나믹 프로그래밍 3. 파이썬 코드 import sysinput = sys.stdin.readlineC, N = map(int,input().split())dp = [10**9] * (C+101)moneys = []# 초기 들어온 값들을 dp 에 사람수와 비용으로 초기값 선언for _ in range(N): cost, people = map(int,input().split()) moneys.append((cost,people)) dp[people] = min(cost,dp[people])# 이후 C 값은 최대 1000 보다 작고 비용은 100 값보..
-
1744. [Python]수 묶기Python_알고리즘/Gold IV 2025. 4. 6. 08:54
1. 문제 https://www.acmicpc.net/problem/1744 2. 접근 방법 시간 제한: 2초메모리 제한: 128MB정렬 3. 파이썬 코드 import sys# 인풋 리스트num_list = []input = sys.stdin.readlineN = int(input())for _ in range(N): num_list.append(int(input()))# 리스트 정렬num_list.sort()# + 부분과 - 부분 구분plus_list = []minus_list = []# 정답 및 len 사용하지 않을 변수 선언ans = 0plus_length = 0minus_length = 0# 반복문 돌며 + 리스트와 - 리스트 길이 및 저장for i in range(N-1,-1,-1): ..
-
14502. [Python]연구소Python_알고리즘/Gold IV 2024. 10. 17. 21:06
1. 문제 https://www.acmicpc.net/problem/14502 2. 접근 방법 시간 제한: 1초메모리 제한: 128MB그래프 탐색브루트 포스 3. 파이썬 코드 from itertools import combinations# DFS 로직def DFS(start): stack = [start] global max_value global check_cnt while stack: next = stack.pop() for k in range(4): ny = next[0] + direction[k][0] nx = next[1] + direction[k][1] if 0 max_value: ..
-
2631. [Python]줄세우기Python_알고리즘/Gold IV 2024. 10. 12. 02:04
1. 문제 https://www.acmicpc.net/problem/2631 2. 접근 방법 시간 제한: 1초메모리 제한: 128MBLIS(DP) 알고리즘 3. 파이썬 코드 import sysinput = sys.stdin.readlineN = int(input())num_list = []# 숫자 리스트 추가for _ in range(N): num_list.append(int(input()))# LIS 알고리즘 적용할 리스트long_length = [0] * N# LIS 알고리즘for i in range(N): # i 번 값 1로 초기화 long_length[i] = 1 # 0번 인덱스부터 i 번 인덱스까지 반복문진행 for j in range(0,i): # i 번..
-
10159. [Python]저울Python_알고리즘/Gold IV 2024. 9. 19. 18:08
1. 문제 https://www.acmicpc.net/problem/10159 2. 접근 방법 시간 제한: 1초메모리 제한: 256MB최단거리플로이드 와샬 3. 파이썬 코드 import sysinput = sys.stdin.readlineN = int(input())M = int(input())# 초기 그래프 선언graph = [[0] * (N+1) for _ in range(N+1)]# 들어온 인풋에 대해서 누가 더 큰지 체크for _ in range(M): S,E = map(int,input().split()) graph[S][E] = 1# i,i 인덱스 0으로 초기화for i in range(N+1): graph[i][i] = 0# 플로이드 와샬for i in range(1,N+1..
-
17404. [Python]RGB거리 2Python_알고리즘/Gold IV 2024. 9. 2. 20:35
1. 문제 https://www.acmicpc.net/problem/17404 2. 접근 방법 시간 제한: 0.5초메모리 제한: 128MBDP 3. 파이썬 코드 import sysinput = sys.stdin.readlineN = int(input())houses = []# 최소값 저장 변수result = 10**9# 집 마다 색에 대한 값for _ in range(N): houses.append(list(map(int,input().split())))# 빨, 파, 초 선택하는 범위for i in range(3): # dp 값 각각 0번 집 어느 색을 선택한지에 대한 초기화 dp = [[10**9] * 3 for _ in range(N)] # dp 첫 인덱스 값 갱신 dp[0..
-
1806. [Python]부분합Python_알고리즘/Gold IV 2024. 8. 19. 17:35
1. 문제 https://www.acmicpc.net/problem/1806 2. 접근 방법 시간 제한: 0.5초메모리 제한: 128MB투 포인터누적합 3. 파이썬 코드 N,S = map(int,input().split())numList = list(map(int,input().split()))left = 0right = 0# 누적합 구하는 변수total = 0# 최소 길이 측정minLength = 10**9# right 값이 끝에 도달할때까지while right = S: # S값보다 작아질때까지 left 값 더해나감 while total >= S: # right - left 길이 체크 check = right - left ..
-
9252. [Python]LCS 2Python_알고리즘/Gold IV 2024. 6. 20. 16:03
1. 문제 https://www.acmicpc.net/problem/9252 2. 접근 방법 시간 제한: 2초 (Python)메모리 제한: 256MBLCSDP 3. 파이썬 코드 # 재귀 제한 해제import syssys.setrecursionlimit(10000)# 재귀함수를 통해서 문자 찾기def backtracking(start, value): global max_value global ans global word_two # 최대 길이 도달했을때 종료 if value == 0: print(max_value) print(ans[::-1]) exit() # 현재 칸에서 위로 간 값과 왼쪽으로 간 값을 비교해서 작은 값찾는 재귀 ..
-
1253. [Python] 좋다Python_알고리즘/Gold IV 2024. 3. 13. 01:20
1. 문제 https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 2. 접근 방법 시간 제한: 2초 메모리 제한: 256MB 투 포인터 이분탐색 3. 파이썬 코드 N = int(input()) # 이분 탐색 num_list = list(map(int,input().split())) # 정렬 num_list.sort() cnt = 0 for i in range(N): # 시작 start = 0 # 끝 end = N-1 # 이분 탐색 진행 while start < end: # 시작 ..
-
1261. [Python]알고스팟Python_알고리즘/Gold IV 2024. 3. 6. 20:25
1. 문제 https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 2. 접근 방법 시간 제한: 1초 메모리 제한: 128MB 다익스트라 우선순위 큐 3. 파이썬 코드 import heapq N,M = map(int,input().split()) matrix = [ list(map(int,input())) for _ in range(M) ] # 방향배열 탐색 direction = [(0,-1), (-1,0), (0,1), (1,0)..