PS25 [BOJ] Python 백준 알고리즘 수업 - 너비 우선 탐색 1(24444) https://www.acmicpc.net/problem/24444 전형적인 bfs의 문제 방문 순서를 지정하는 것이므로, 고유한 값으로 visited를 갱신해야함cnt를 전역으로 선언해서 bfs에 방문이 될 때 마다 cnt 값을 증가시켜 값을 갱신import sysfrom collections import dequeinput = sys.stdin.readlineN, M, R = map(int,input().split())s = [[] for _ in range(N+1)]visited = [0] * (N+1)cnt = 1def bfs(v): global cnt queue = deque() queue.append(v) visited[v] = cnt while queue: .. 2024. 11. 1. [BOJ] Python 백준 알고리즘 수업 - 깊이 우선 탐색 1(24479) 전형적인 dfs 문제방문을 오름차순으로 방문해야하기에 방문때마다 오름차순으로 정렬해줘야한다.순차적으로 방문해 순서를 매기기 때문에 cnt를 외부에 두어 방문때마다 값을 증가시켜주며, visited 배열에 갱신해준다. import sysinput = sys.stdin.readlinesys.setrecursionlimit(150000)N, M, R = map(int,input().split())visited = [0] * (N+1)cnt = 1s = [[] for _ in range(N+1)]for _ in range(M): x,y = map(int,input().split()) s[x].append(y) s[y].append(x)def dfs(v): global cnt visit.. 2024. 10. 31. [Progammers] Python 프로그래머스 입국심사(43238) https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 아주 최악의 상황을 고려해도 최대 시간 * 사람 수 내에 다 들어옴으로 end = 최대 시간 * 사람 수시작은 1 중간값(정답 시간)을 배열 내 시간으로 나누면 그 시간에 들어갈 수 있는 인원의 총 수가 나온다.그 값이 기존 사람수보다 많다면 값이 너무 커 사람이 많이 들어온 것이므로 end값을 줄인다. 만약 그 값이 기존 사람 수 보다 적다면, 값이 너무 작아 사람이 많이 못들어온 것이므로 start 값을 높인다. def solution(n.. 2024. 10. 30. [BOJ] Python 백준 징검다리(11561) https://www.acmicpc.net/problem/11561 기본적인 조건인 최대한 많은 징검다리를 밟는다는 것은 최소한 짧게 뛰어야 많이 밟게 됌즉, 1 + 2 + 3 + 4 + 5 + 6 .... + N 이런식으로 뛰어야 최대로 밟게된다. 위 공식은 등차 수열이므로 SUM = N(N+1) // 2로 정리할 수 있다. 즉, 결과 값인 SUM이 N을 넘지 않는 선에서 제일 가까운 SUM 값에 대한 middle이 최대로 밟을 수 있는 값이다.import sysinput = sys.stdin.readlineT = int(input())for _ in range(T): N = int(input()) result = 0 start = 0 end = N while .. 2024. 10. 29. 이전 1 ··· 3 4 5 6 7 다음