🍋 ⚾️ 💻 🎬 🎮

coding_test 69

99클럽 코테 스터디 _ 15일차 TIL (브루트 포스, 조합)

[백준] 15686. 치킨 배달 / 골드5코드 변수 정의chickens : 치킨집 좌표 리스트houses : 집 좌표 리스트min_dist : 최종 반환할 최소 치킨 거리total_dist : 치킨집 조합별 총 치킨 거리house_to_chicken : 현재 집의 치킨 거리Brute Force시간복잡도 : O(C(13,M)×(H×M))≈O(10^6)from itertools import combinationsdef chicken(): N, M = map(int, input().split()) # 도시 크기 NxN, 선택할 치킨집 개수 M board = [list(map(int, input().split())) for _ in range(N)] # 도시 정보 입력 # 치킨집과 집의 좌표 ..

99클럽 코테 스터디 _ 14일차 TIL (브루트포스)

[백준] 2615. 오목 / 실버1코드 변수 정의function : checkcnt : 연속된 같은 바둑알의 개수ax, ay : 가장 왼쪽에 위치한 바둑알의 좌표function : fdirections : 탐색할 4가지 방향is_valid : 5개의 같은 바둑알이 연속되어 있는지 확인x, y : 5개의 같은 바둑알이 연속되어 있는 경우, 해당 바둑알 중 가장 왼쪽에 있는 위치Brute Force시간복잡도 : O(6000)    * 최대# 5개의 같은 바둑돌이 연속되는지 확인하는 함수def check(board, i, j, d1, d2): cnt, ax, ay = 1, i, j # 현재 돌 포함, 초기 위치 저장 # 주어진 방향 (d1, d2)으로 이동하면서 같은 돌인지 확인 for dx..

99클럽 코테 스터디 _ 13일차 TIL (백트래킹)

[백준] 2529. 부등호 / 실버1코드 변수 정의depth : 현재 선택한 숫자의 개수를 의미하며, k+1개가 되면 종료num_list : 현재까지 선택한 숫자들을 저장한 리스트min_num, max_num : 반환할 숫자num_to_str : 리스트를 문자열로 변환한 값visited : 숫자 사용 여부 표시Backtracking시간복잡도 : O(10!)       *최대 탐색 경우# x, y가 부등호를 만족하는지 확인하는 함수def is_valid(x, y, sign): return (sign == '' and x > y)# 부등호 조건을 만족하는 최댓값과 최솟값을 찾는 함수def search(k, inequal): # 백트래킹을 이용한 숫자 조합 탐색 def backtrack(dep..

99클럽 코테 스터디 _ 12일차 TIL (브루트 포스)

[백준] 1051. 숫자 정사각형 / 실버3코드 변수 정의min(N, M) : 만들 수 있는 정사각형 한 변의 최대 길이Brute Force시간복잡도 : O(N x M x min(N, M))             *최악의 경우def f(): N, M = map(int, input().split()) board = [input() for _ in range(N)] for s in range(min(N, M), 1, -1): # 주어진 보드로 만들 수 있는 모든 정사각형의 한변의 길이 for i in range(N - s + 1): for j in range(M - s + 1): # 정사각형 4개 모서리가 모두 같은 값을 갖는 경우 ..

99클럽 코테 스터디 _ 11일차 TIL (브루트 포스)

[백준] 1018. 체스판 다시 칠하기 / 실버4코드 변수 정의function : check_patternpattern1, pattern2 : 체스판의 시작이 W인 패턴, 체스판의 시작이 B인 패턴replace1 : pattern1인 체스판인 경우 다시 칠해야 하는 칸의 수replace2 : pattern2인 체스판인 경우 다시 칠해야 하는 칸의 수function : fcompare_board : 주어진 보드에서 잘라낸 8X8 체스판min_ans : 체스판에서 다시 칠해야 하는 정사각형의 최소 개수Brute Force시간복잡도 : O(NXM)def check_pattern(board): pattern1 = ['WBWBWBWB', 'BWBWBWBW'] * 4 # 시작이 W인 패턴 pattern..

99클럽 코테 스터디 _ 10일차 TIL (BFS)

[백준] 2573. 빙산 / 골드4코드 변수 정의function : melt_icebergnew_graph : 녹은 후의 빙산 상태 그래프 생성을 위한 리스트directions : 상하좌우 탐색을 하기 위한 배열sea_cnt : 빙산에 인접한 바다의 개수function : count_icebergiceberg_cnt : 빙산 덩어리 개수function : maingraph : 현재 빙산 상태day : 경과 일수max_day : 무한 루프 방지용 최대 일수BFS시간복잡도 : O(N x M)from collections import deque# 현재 그래프 빙산 상태에서 녹은 후의 그래프를 반환하는 함수def melt_iceberg(graph, N, M): # 새로운 빙산 상태를 저장할 리스트 초기화 ..

99클럽 코테 스터디 _ 9일차 TIL (이분 그래프, BFS)

[백준] 1707. 이분 그래프 / 골드4코드 변수 정의graph : 인접 리스트 그래프colors : 정점 색상 표시 배열results : 이분 그래프이면 YES, 아니면 NOBFS시간복잡도 : O(k * (V + E))from collections import deque# 이분 그래프인지 확인하는 함수def is_bipartite_graph(V, E, edges): # 그래프 초기화 graph = [[] for _ in range(V + 1)] for u, v in edges: graph[u].append(v) graph[v].append(u) # 색상 표시 배열 (0: 미방문, 1: 검정, -1: 흰색) colors = [0] * (V+1) ..

728x90
반응형