알고리즘/알고리즘_백준 72

[Python][백준] 1449. 수리공 항승 / 정렬,그리디(S3)

링크🔗https://www.acmicpc.net/problem/1449🗒️파이썬 코드 풀이N,L = map(int,input().split())lst = list(map(int,input().split()))lst.sort()start = lst[0]-1end = start + L count = 1for i in range(N): if lst[i]  1. 입력받은 lst를 정렬 해준다. 2. Start와 end의 범위를 만들어주고, 범위를 갱신하는 방향으로 간다. 3. 반복문에서 lst[i]가 Start와 end의 범위 내외면 continue,lst[i]가 Start와 end의 범위 밖이면 범위 초기화 및 count + 1   🗒️내 풀이 코드from collections import dequ..

[Python][백준] 7562. 나이트의 이동/ BFS,그래프 탐색(S1)

링크🔗https://www.acmicpc.net/problem/7562🗒️파이썬 코드 풀이from collections import dequeT = int(input())for _ in range(T): I = int(input()) start_x,start_y = list(map(int,input().split())) end_x,end_y = list(map(int,input().split())) chess = [[-1]*I for _ in range(I)] nights = [[-2,-1],[-2,1],[2,1],[2,-1],[-1,2],[1,2],[-1,-2],[1,-2]] def dfs(i,j): q = deque([[i,j]]) ches..

[Python][백준] 1931. 회의실 배정/ 그리디,정렬(S1)

링크🔗https://www.acmicpc.net/problem/1931🗒️파이썬 코드 풀이N = int(input())lst = []for _ in range(N): start,end = map(int,input().split()) lst.append((start,end))lst.sort()rs_lst = [lst[0]]for i in range(1,N): if rs_lst[-1][1] > lst[i][0]: if rs_lst[-1][1] > lst[i][1]: rs_lst.pop() rs_lst.append(lst[i]) elif rs_lst[-1][1]  1. 먼저 마구잡이의 입력을 (strart 기준)정렬해준다.  2. 비..

[Python][백준] 2589. 보물섬 / 브루트포스,BFS (G5)

링크🔗https://www.acmicpc.net/problem/2589🗒️파이썬 코드 풀이from collections import deque import syssys.setrecursionlimit(10**6)input = sys.stdin.readlineN,M = map(int,input().split())graph = [list(input().strip()) for _ in range(N)]visited = [[-1] * M for _ in range(N)]ans = -1di,dj = [0,1,0,-1],[1,0,-1,0]def bfs(i,j): global ans visited = [[-1] * M for _ in range(N)] visited[i][j] = 0 q = ..

[Python][백준] 2529. 부등호 / 브루트포스,백트래킹 (S1)

링크🔗https://www.acmicpc.net/problem/2529🗒️파이썬 코드 풀이import syssys.setrecursionlimit(10**6)input = sys.stdin.readlineK = int(input())lst = list(input().strip())lst = list(filter(lambda x : x != " ", lst))rs_lst = []visited = [0] * 10def get_num(a,b,sign): if sign == " b : return True return Falsedef dfs(n,result): if n == K+1 : rs_lst.append(result) return for i in ..

[Python][백준] 10655. 마라톤 1/ 구현, 브루트포스 (S3)

링크🔗https://www.acmicpc.net/problem/10655🗒️파이썬 코드 풀이N = int(input())x_lst = []y_lst = []for _ in range(N): x,y = map(int,input().split()) x_lst.append(x) y_lst.append(y)sum = 0 for i in range(0,len(x_lst)-1): sum = sum + abs(x_lst[i]-x_lst[i+1]) + abs(y_lst[i]-y_lst[i+1])mn = 1e100for i in range(1,len(x_lst)-1): prev_mid = abs(x_lst[i-1] - x_lst[i]) + abs(y_lst[i-1] - y_lst[i]) ..

[Python][백준] 2583. 영역 구하기/ 그래프 탐색,DFS,BFS (S1)

링크🔗https://www.acmicpc.net/problem/2583🗒️파이썬 코드 풀이 (DFS)import syssys.setrecursionlimit(10**6)input = sys.stdin.readlineN, M, K = map(int, input().split())lst = [[0] * M for _ in range(N)]for _ in range(K): j1, i1, j2, i2 = map(int, input().split()) for i in range(i1, i2): for j in range(j1, j2): lst[i][j] = 1 di, dj = [0, -1, 0, 1], [1, 0, -1, 0]rs = []def d..

[Python][백준] 11724. 연결 요소의 개수/ 그래프 탐색,DFS,BFS (S2)

링크🔗https://www.acmicpc.net/problem/11724🗒️파이썬 코드 풀이 (DFS)import syssys.setrecursionlimit(10**6)input = sys.stdin.readlinedef dfs(graph,i,visited): visited[i] = True for v in graph[i]: if not (visited[v]): dfs(graph,v,visited)N, M = map(int, input().split())graph = [[] for _ in range(N + 1)]visited = [0] * (N + 1)for _ in range(M): u, v = map(int, input().split()) ..