본문 바로가기

분류 전체보기57

백준 11660 구간 합 구하기 5 (실버 1) 백준 11660 구간 합 구하기 5 (실버 1)링크: 11660 구간 합 구하기 5접근 방법같은 값을 M번 계산할 수 있으므로 dfs bfs는 사용불가sum 연산을 하는 것은 속도가 느릴 것특정 범위의 값을 미리 계산해두고 꺼내쓰기소스 코드소스 코드: 제출한 정답 소스 코드import sys# 표준입출력 방식 변경input = sys.stdin.readline# 입력N, M = map(int, input().split())graph = [[int(i) for i in input().split()] for _ in range(N)]# 구간 합 방식으로 계산prefix = [[0] * (N+1) for _ in range(N+1)]for row in range(1, N+1): for col in ran.. 2025. 4. 22.
백준 2468 안전 영역 (실버 1) 백준 2468 안전 영역 (실버 1)링크: 2468 안전 영역접근 방법높이 1부터 가장 높은 부분 전까지 반복dfs로 풀이최악 N, N^2 이므로 dfs 사용 가능함소스 코드소스 코드: 93413770 제출import sys# 입력input = sys.stdin.readlineN = int(input())graph = []max_height = 0for _ in range(N): line = [int(i) for i in input().split()] graph.append(line) max_height = max(max(line), max_height) # 최대 높이 구하기# dfsdelta_x = [1, -1, 0, 0]delta_y = [0, 0, 1, -1]def dfs(visit.. 2025. 4. 21.
백준 1629 곱셈 (실버 1) 백준 1629 곱셈 (실버 1)링크: 1629 곱셈접근 방법(시간 초과) 반복문으로 계산하고 그 중간 과정에 C로 나눔(정답) 분할 정복으로 지수를 나눠서 계산소스 코드소스 코드: 93356067 제출A, B, C = map(int, input().split())# print(pow(A, B, C)) 정답def divide(A: int, B: int) -> int: if B == 0: return 1 half = divide(A, B//2) if B % 2 == 0: return (half * half) % C else: return (half * half * A) % Cprint(divide(A, B))ABCreturn101112'''5''''.. 2025. 4. 20.
백준 15686 치킨 배달 (골드 5) 백준 15686 치킨 배달 (골드 5)링크: 15686 치킨 배달접근 방법각 집마다 치킨 집의 위치와 거리를 오름차순으로 저장가능한 치킨집 조합을 계산치킨집 조합과 위치가 동일한지 판단 후 오름차순 하나씩 탐색소스 코드소스 코드: 93340693 제출import sysfrom itertools import combinations# 입력input = sys.stdin.readlineN, M = map(int, input().split())graph = []chicken_site = []house_site = []for n in range(N): line = list(map(int, input().split())) for idx, val in enumerate(line): if val.. 2025. 4. 19.
14889 스타트와 링크 (실버 1) 백준 14889 스타트와 링크 (실버 1)링크: 14889 스타트와 링크접근 방법그래프 입력을 받고, combinations 함수로 팀 편성편성된 선수는 팀 A, 안된 선수는 팀 B로 설정점수 계산소스 코드소스 코드: 93249959 제출import sysfrom itertools import combinationsinput = sys.stdin.readline# N 입력N = int(input())# 선수 능력치 입력graph = []for _ in range(N): row = [int(i) for i in input().split()] graph.append(row)# combinations 함수로 팀 편성team_comb = list(combinations(range(N), N//2))#.. 2025. 4. 17.
백준 1753 최단경로(골드 4) 백준 1753 최단경로(골드 4)링크: 1753 최단경로접근 방법최단거리를 사용하는 알고리즘 사용(AI 도움) 다엑스트라 사용다엑스트라는 가중치가 양수일 때 사용 가능최단거리를 찾는 것이기 때문에 사용 가능소스 코드소스 코드: 93152585 제출import sysimport heapq# 입력input = sys.stdin.readlineV, E = map(int, input().split())K = int(input())# 그래프 입력INF = float('inf')graph = [[] for _ in range(V)]for e in range(E): u, v, w = map(int, input().split()) graph[u-1].append((v-1, w))# 다엑스트라 알고리즘으로 최.. 2025. 4. 15.