본문 바로가기

분류 전체보기

(131)
[백준_3190번] 뱀 (python) https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 내 풀이 import sys from collections import deque # input = sys.stdin.readline N = int(input()) # 맵크기 n*n K = int(input()) apple = [tuple(map(int, input().split())) for _ in range(K)] L = int(input()) moves = {} for i in range(L): ..
[백준_3191번] 백조의 호수 (python) https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net 내풀이 -> 시간초과 import sys from collections import deque # input = sys.stdin.readline n, m = map(int, input().split()) MAP = [list(input().strip()) for _ in range(n)] p = [] for r in range(n): for c in range(m):..
[백준_1665번] 가운데를 말해요 (python) https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 첫 풀이 from collections import deque import sys # input = sys.stdin.readline n = int(input()) nums = deque([int(input()) for _ in range(n)]) sorted_nums = sorted(nums) length = len(sorted_nums) answers = [] while num..
[백준_12865번] 평범한 배낭 (python) https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 접근 처음에 모든 물건이 담기는 경우의 수를 조합을 통해서 구하려고 했으나 너무 계싼량이 많아질 것 같아서 다른 방법 생각. knapsack 알고리즘을 이용해서 풀이 내 풀이 N, K = map(int, input().split()) items = [list(map(int,input().split())) for _ in range(..
냅색(knapsack) 알고리즘 가방 허용 무게가 정해서 있을 때 가방에 넣을 수 있는 물건들의 최대값을 구할 때. 최대 가치를 가지는 물건을 넣는 식으로 greedy 알고리즘으로 문제를 해결하려고 하면 해결 할 수 없다. ex ) 가방의 허용 무게 7kg. 물건들 (6kg 13) (4kg, 8) (3kg, 6) (5kg, 12) 일 때 (4kg, 8) (3kg, 6) 담는 경우가 정답인데 그리디 알고리즘으로 해결하려고 하면 (6kg 13) 나옴 분할가능 냅색 알고리즘 - 담을 물건이 소금 등 분할 가능 할 때 무게당 가치로 정렬하고 그리디 알고리즘을 수행하면 해결 가능 0-1냅색 알고리즘(분할 불가능) 담을 물건이 나누어 지지 않을 때 사용하는 알고리즘 DP 알고리즘으로 점화식 이용 2차원 리스트 L 를 만든다. (row : 물건 갯..
[백준_12100번] 2048 (python) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 내풀이 from itertools import product import copy def up(BOARD): # x 0 -> 2 added = {} n = len(BOARD) for x in range(n): for y in range(n): nx, ny = x, y while nx - 1 >= 0 and BOARD[nx-1][y] == 0: nx -= 1 # 이동 B..
[백준_13460번] 구슬 탈출 2 (python) https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 내 풀이 n, m = map(int,input().split()) MAP = [] for _ in range(n): MAP.append(list(map(str,input()))) def move(x, y, dx, dy): cnt = 0 nx, ny = x, y while MAP[nx + dx][ny + dy] != '#' and MAP[nx][ny..
[프로그래머스] 순위 (python) https://programmers.co.kr/learn/courses/30/lessons/49191?language=python3 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr set과 defaultdict를 이용한 풀이 from collections import defaultdict def solution(n, results): answer = 0 win, lose = defaultdict(set), defaultdict(set) for result in results: lose[result[1]].add(result[0]) win[result[0]].add(result[1]) for i in range(1, ..
[프로그래머스] 가장 먼 노드 (python) https://programmers.co.kr/learn/courses/30/lessons/49189?language=python3 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 내 풀이 from collections import deque def solution(n, vertex): l = len(vertex) graph = [[] for i in range(l+1)] for (s, e) in vertex: graph[s].append(e) graph[e].append(s) distances = [-1] * ( n + 1 ) q = deque([1]) distances[1] ..
[17] Troubleshooting Out Of Memory(OOM) 큰 모델을 사용할 때 자주 겪었었는데 보통 batch_size를 줄여서 돌리면 정상적으로 돌아갔다. OOM 이 해결이 어려운 이유들 왜 발생했는지 알기 어려움 어디서 발생했는지 알기 어려움 Error backtracking 이 이상한데로 감 메모리의 이전상황의 파악이 어려움 해결 : Batch Size 줄이기 → GPU clean→ Run GPUUtil 사용하기 nvidia-smi 처럼 GPU의 상태를 보여주는 모듈 Colab은 환경에서 GPU 상태 보여주기 편함 iter마다 메모리가 늘어나는지 확인!! torch.cuda.empty_cache() 사용되지 않은 GPU상 cache를 정리 가용 메모리를 확보 del 과는 구분이 필요 reset 대신 쓰기 좋은 함수 imp..