Python_알고리즘/Gold V
-
13398. [Python]연속합 2Python_알고리즘/Gold V 2025. 3. 16. 22:52
1. 문제 https://www.acmicpc.net/problem/13398 2. 접근 방법 시간 제한: 2초메모리 제한: 512MB다이나믹 프로그래밍 3. 파이썬 코드 N = int(input())num_list = list(map(int,input().split()))# 문제에서 최소 한 개 이상의 수를 선택해야기 때문에 N이 1인 경우 예외처리 진행if N == 1: print(num_list[0])# N이 2개 이상인 경우else: # 첫 누적합을 구할 리스트를 생성 dp = [0] * N # 누적합을 구하기 위한 리스트는 첫 인덱스 값으로 선언 dp[0] = num_list[0] # 1번 인덱스부터 N 까지 반복 for i in range(1,N): ..
-
3980. [Python]선발 명단Python_알고리즘/Gold V 2024. 10. 21. 18:40
1. 문제 https://www.acmicpc.net/problem/3980 2. 접근 방법 시간 제한: 1초메모리 제한: 128MB백트래킹브루트 포스 3. 파이썬 코드 import sysinput = sys.stdin.readline# 백트래킹def DFS(start): # 최대값 저장 global max_value # 값 저장 global value # 최종 11에 도달했을 때 if start == 11: # 최대 값보다 값이 크면 갱신 if max_value 4. 문제를 풀고난 후 생각 모든 경우의 수를 다 탐색하면서 알고리즘을 돌리면 된다.백트래킹을 진행하되 0 번인덱스를 기준으로 백트래킹을 해주면 원하는 결과값이 나온다.테스트 케이스 개..
-
1469. [Python]숌 사이 수열Python_알고리즘/Gold V 2024. 10. 8. 22:34
1. 문제 https://www.acmicpc.net/problem/1469 2. 접근 방법 시간 제한: 2초메모리 제한: 128MB브루트 포스백트래킹 3. 파이썬 코드 import sys# 재귀 제한 해제sys.setrecursionlimit(10000)# 백트래킹def backtracking(cnt): # 리스트 2배의 길이가 됐을때 종료 if cnt == N*2: print(*answer) exit() return # 리스트 안의 값 순회 for value in num_list: # 딕셔너리 값이 존재할 경우 if num_dict[value] > 0: # 딕셔너리 값이 2인 경우 백트래킹 ..
-
14719. [Python]빗물Python_알고리즘/Gold V 2024. 9. 30. 20:15
1. 문제 https://www.acmicpc.net/problem/14719 2. 접근 방법 시간 제한: 1초메모리 제한: 256MB구현 3. 파이썬 코드 # H, W 인풋 처리H, W = map(int,input().split())# 빗물의 양 리스트로 저장rains = list(map(int,input().split()))# 몇칸이 쌓이는지 저장할 변수answer = 0# 1 ~ W-2 까지 반복for i in range(1,W-1): # i 값을 기준으로 왼쪽에서 제일 큰 값 찾기 left_value = max(rains[:i]) # i 값을 기준으로 오른쪽에서 제일 큰 값 찾기 right_value = max(rains[i:]) # 두 값중 작은 값 찾기 min_..
-
2294. [Python]동전 2Python_알고리즘/Gold V 2024. 9. 5. 14:14
1. 문제 https://www.acmicpc.net/problem/2294 2. 접근 방법 시간 제한: 1초메모리 제한: 128MBDP(다이나믹 프로그래밍) 3. 파이썬 코드 import sysinput = sys.stdin.readlinen, k = map(int,input().split())coins = []# 동전 저장for _ in range(n): coins.append(int(input()))# 동전 정렬coins.sort()# 동전 중복 제거coins = set(coins)# 초기 값으로 10**9 설정 => 동전의 개수가 최소로 사용되기 떄문에 0으로 하면 min 값이 변동됨dp = [10**9] * 100001# 동전 순회for coin in coins: # coin 위치 동..
-
2293. [Python]동전 1Python_알고리즘/Gold V 2024. 9. 5. 05:43
1. 문제 2. 접근 방법 시간 제한: 0.5초메모리 제한: 4MBDP 3. 파이썬 코드 import sysinput = sys.stdin.readlinen, k = map(int,input().split())# 동전 저장 리스트coins = []# 동전 저장for _ in range(n): coins.append(int(input()))# 동전 정렬coins.sort()dp = [0] * (k+1)# 0원을 만드는 방법도 1개dp[0] = 1# 동전 반복 진행for coin in coins: # 초기값 동전부터 1씩 더해나감 for i in range(coin,k+1): # i번째 동전의 경우 i-coin 한 값을 더해나가야함 동전이 계속 값이 바뀌기 때문에 ..
-
6581. [Python]HTMLPython_알고리즘/Gold V 2024. 8. 26. 19:29
1. 문제 https://www.acmicpc.net/problem/6581 2. 접근 방법 시간 제한: 1초메모리 제한: 128MB구현파싱 3. 파이썬 코드 import sysans = []# input으로 들어오는 대로 받기for words in sys.stdin: # 공백 제거하고 구분하여 리스트에 추가 for word in words.strip().split(): ans.append(word)# 정답 출력할 변수answer = ""# 리스트 안을 순회for an in ans: # 개행 태그인 경우 이때까지 저장한 문자 출력 후 초기화 if an == "": print(answer) answer = "" continue ..
-
2866. [Python]문자열 잘라내기Python_알고리즘/Gold V 2024. 8. 19. 18:17
1. 문제 https://www.acmicpc.net/problem/2866 2. 접근 방법 시간 제한: 1초메모리 제한: 256MB정렬 3. 파이썬 코드 import sysinput = sys.stdin.readline# 행, 열 길이R, C = map(int,input().split())# 문자열 받아옴words = [ list(map(str,input().strip())) for _ in range(R) ]# 문자 역순으로 저장new_words = []# 아래서부터 문자열을 저장for j in range(C): ans = "" for i in range(R-1,-1,-1): ans += words[i][j] new_words.append(ans)# 문자열 정렬new_wo..
-
2866. [Python]문자열 잘라내기Python_알고리즘/Gold V 2024. 8. 13. 18:46
1. 문제 https://www.acmicpc.net/problem/2866 2. 접근 방법 시간 제한: 1초메모리 제한: 256MB정렬 3. 파이썬 코드 import sysinput = sys.stdin.readline# 행, 열 길이R, C = map(int,input().split())# 문자열 받아옴words = [ list(map(str,input().strip())) for _ in range(R) ]# 문자 역순으로 저장new_words = []# 아래서부터 문자열을 저장for j in range(C): ans = "" for i in range(R-1,-1,-1): ans += words[i][j] new_words.append(ans)# 문자열 정렬new_wo..
-
14891. [Python]톱니바퀴Python_알고리즘/Gold V 2024. 8. 7. 21:24
1. 문제 https://www.acmicpc.net/problem/14891 2. 접근 방법 시간 제한: 2초메모리 제한: 512MB구현시뮬레이션 3. 파이썬 코드 import sysfrom collections import deque# 시계 방향 회전def right(target): check = matrix[target].pop() matrix[target].appendleft(check)# 반시계 방향 회전def left(target): check = matrix[target].popleft() matrix[target].append(check)# 연결된 톱니바퀴 체크def DFS(start,dir): # 방문처리를 통해 연결된 톱니바퀴 회전 visited = [..