본문 바로가기

Algorithm475

[파이썬] 백준 1012 : 유기농 배추 (실버2) 백준 1012 : 유기농 배추 (실버2) 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 문제 풀이 0. 방향성 생각 군집의 개수를 측정하는 문제이므로 DFS로 접근해야함을 알 수 있다. 밭의 크기가 크지는 않지만 재귀적으로 DFS를 구현하면 오류가 발생할 수 있으므로 재귀 리미트를 설정한다. 1. DFS 함수 정의 import sys sys.setrecursionlimit(10**6) def dfs(x,y): if x=M : return 0 if land[x][y] == True : land[x][y] = False r.. 2023. 5. 8.
[파이썬] 백준 14940 : 쉬운 최단거리 (실버1) 백준 14940 : 쉬운 최단거리 (실버1) 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 문제 풀이 0. 방향성 생각 최단 거리를 요구하는 문제이기 때문에 BFS로 접근해야함을 알 수 있다. 또한 배열의 크기가 1000x1000이기 때문에 재귀를 통한 DFS 구현 시 시간이 오래 소요됨을 유추할 수 있다. 1. 입력 받기 import sys from collections import deque h,w = map(int,sys.stdin.readline().spli.. 2023. 5. 7.
[파이썬] 백준 - 15단계 약수,배수와 소수2 [파이썬] 백준 - 15단계 약수,배수와 소수2 유클리드 호제법 / 에라스토테네스의 체 / 소수는 제곱근 까지 탐색 최소공배수 (1934) T = int(input()) for i in range(T): A,B = map(int,input().split()) if min(A,B)==1 : print(max(A,B)) continue else : for j in range(min(A,B),0,-1): if A%j == 0 and B%j == 0: print(int(A*B/j)) break 1초 정도면 그냥 넘어갈줄 알고 최소공배수 구했는데 시간초과 두 수의 곱이 최대공약수로 나누어 떨어지면 출력 최소공배수 (13241) A,B = map(int,input().split()) if min(A,B)==1 : .. 2023. 4. 28.
[파이썬] 백준 - 19단계 스택 [파이썬] 백준 - 19단계 스택 스택 (10828) import sys N = int(input()) temp = [] for i in range(N): s = list(sys.stdin.readline().rstrip().split()) if s[0] == 'push' : temp.append(s[1]) if temp == [] : if s[0] == 'size' : print(0) elif s[0] == 'pop' : print(-1) elif s[0] == 'top' : print(-1) elif s[0] == 'empty' : print(1) else : if s[0] == 'size' : print(len(temp)) elif s[0] == 'pop' : print(temp[-1]) temp... 2023. 4. 22.