푼 날짜 : 2024.12.04푼 문제 : [26169] / 세 번 이내에 사과를 먹자사용한 언어 : python알고리즘 : DFS, 백트래킹 접근방식 :조건은 "세 번 이하의 이동으로 사과를 2개 이상 먹을 수 있으면 1을 출력하고, 그렇지 않으면 0을 출력"이다.백트래킹 방식으로 풀이했다. 코드 :import sysinput = sys.stdin.readlineNUM = 5dy = [-1, 1, 0, 0]dx = [0, 0, -1, 1]# 정답 확인을 위한 0, 1 체크용 변수check = 0# py, px -> 시작위치, cnt -> 사과 개수 확인, now -> 이동 횟수 확인def backtracking(graph, visited, py, px, cnt, now): global chec..
푼 날짜 : 2024.10.30푼 문제 : [1189] / 컴백홈사용한 언어 : python알고리즘 : DFS/백트래킹 접근 방식 :DFS로 탐색하며 K만큼 이동한 위치가 목적지라면 카운트 해주는 방식으로 구현했다. 코드 : import sysR, C, K = map(int, sys.stdin.readline().split())graph_ = []for _ in range(R): row = list(sys.stdin.readline().rstrip()) graph_.append(row)dy = [-1, 1, 0, 0]dx = [0, 0, -1, 1]visited = [[0 for _ in range(C)] for _ in range(R)]ans = 0def DFS(v, now): gl..
푼 날짜 : 2024.10.30푼 문제 : [2210] / 숫자판 점프사용한 언어 : python알고리즘 : DFS 접근 방식 :깊이 우선 탐색으로 시작한다.문자열을 하나씩 추가해가며 여섯 자리가 만들어지면 set에 담겨 있는지 확인하고 없다면 추가한다. (여섯 자리가 만들어지면 무조건 리턴해준다.) DFS를 다 돌고 나면 맨 뒤에 문자열을 제거한다.이 과정을 반복하면 set에 중복없는 여섯 자리 수가 남게 된다! 코드 : NUM = 5 # 5x5 배열이므로 상수 고정graph_ = []for _ in range(NUM): nums = list(input().rstrip().split()) graph_.append(nums)dy = [-1, 1, 0, 0]dx = [0, 0, -1, 1]#..
푼 날짜 : 2024.09.011푼 문제 : [1303] / 전쟁 - 전투사용한 언어 : python 푼 방법 :DFS로 접근하였다. N명이 뭉쳐있을 때는 N*N의 위력을 낼 수 있다. 같은 병사가 몇 명이 뭉쳐있는지를 계산하고 그 인원의 제곱을 구한다.우리 병사와 적국 병사의 위력의 총합을 출력한다. 범위 계산과 추가적으로 현재의 target과 일치하면 지속해서 DFS를 실행하고 아니라면 제곱값을 총합에 더하여 다음 과정을 진행하도록 구현했다. 코드 :import sysN, M = map(int, sys.stdin.readline().split())graph_ = []visited = [[0 for _ in range(N)] for _ in range(M)]for _ in range(M): ..