죽일거다 안전영역,,,,, 별것도 아닌걸로 내가 얼마나 개고생을 했는지 적어보도록 하자,,,, ✔️ 알고리즘 그래프 이론 브루트포스 알고리즘 그래프 탐색 너비 우선 탐색 깊이 우선 탐색 결론부터 말하자면 이번 문제에서는 Queue 모듈과 문제에서 요구하는 바를 꼼꼼하게 구현하지 못했던 것이 미스테이크였다. ✔️ 접근방법 1. 입력 받은 지역 높이의 종류를 확인하여 해당 높이를 기준으로 기준보다 높으면 안전영역, 그렇지 않으면 침수영역으로 판단. 따라서 입력받은 지역의 높이를 저장한 2차원 리스트를 중복이 불가능한 자료형인 집합에 저장. 하지만 안전영역의 기준 높이가 1이상 일 수 있기 때문에 집합에 0을 추가. 2. 높이가 저장되어 있는 집합을 순회하면서 해당 높이를 기준으로 더 높은 지역들은 안전영역으..
알고리즘/백준(BOJ) 문제 풀이
✔️알고리즘 그래프 이론 그래프 탐색 너비 우선 탐색 ✔️ 실패한 접근방법 1. DFS 로 탐색. 한 좌표에서 동서남북 모든 길을 재귀호출로 탐색 2. 이동할 때마다 count 를 +1 해주고 만약 길을 되돌아올 경우 count 를 -1 해줌 3. 풀이는 가능하지만 재귀호출이 너무 많아 시간초과 ( ** 가지치기 시도해보고 싶었으나 진행 X) from copy import deepcopy import sys import queue #sys.setrecursionlimit(1000000) class Maze: def __init__(self, graph, visited, find_x, find_y): self.graph = graph self.visited = visited self.find_x = fin..
✔️알고리즘 구현 자료구조 큐 ✔️접근방법 1. 덱을 사용해 반복할때마다 3번째 요소가 가장 앞에 오도록 rotation해준 후, pop 해준다. from collections import deque N, K = map(int, input().split()) deq = deque() # deque객체 생성 for i in range(N): # deque에 1~N까지 삽입 deq.append(i+1) for i in range(N): deq.rotate(-(K-1)) #3번째 요소가 가장 앞에 오도록 rotation if (i == 0): print('') break print(', ',end="") ✔️배운점/어려운점 1. 부끄럽지만 여태 원형큐 구현 방법을 습득하지 못해 다시 공부했다. 1) front..
✔️알고리즘 브루트포스 ✔️접근방법 1. 주어진 체스판의 모든 8x8 형태의 부분집합 경우의 수를 다 검사한다. 2. 8x8 체스판은 BWBWBWBW 이나 WBWBWBWB가 반복되면서 이루어져 있다. 어떤 배열이 먼저 시작하는 것이 효율적인지는 알 수 없기 때문에 각각의 경우를 모두 검사한다. mini=64 #8x8 체스판 모두 바꾸는 경우가 최대 str1 = 'BWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWB' str2 = 'WBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBW' def compare_str(chass, str): global mini #전역변수 사용 위해 g..