본문 바로가기

Algorithm

(4)
BFS ▶ BFS BFS는 너비 우선 탐색이라고도 부르며, 그래프에서 가까운 노드부터 우선적으로 탐색하는 알고리즘 맹목적인 탐색을 하고자할 때 사용할 수 있는 기본적인 탐색 기법 최단 경로를 찾아준다는 점에서 최단길이를 보장해야 할 때 많이 사용(미로 찾기) ▶ 원리 큐 자료구조를 이용 탐색 시작 노드를 큐에 삽입하고 방문 처리 큐에서 노드를 꺼낸 뒤, 해당 노드의 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문처리 더 이상 2번의 과정을 수행할 수 없을 때까지 반복 ▶ BFS 코드(파이썬) from collections import deque def bfs(graph,start,visited): queue=deque([start]) visited[start]=True #visited : 들어온..
[백준 2869번] 달팽이는 올라가고 싶다(파이썬) ▶ 문제 ▶ 풀이 하루동안 가는 거리 :a-b x일동안 가는 거리(V) = a*x-(b*(x-1)) 해당 공식 계산 시, x=(v-b)/(a-b)가 됨. 바로 올라갈 경우는 나눠떨어질 경우. 하루 뒤에 올라갈 경우 +1해주면됨 ▶ 코드 a,b,v=map(int,input().split()) x=(v-b)/(a-b) if((v-b)%(a-b)==0): print(int(x)) else: print(int(x)+1) 깃허브 풀이 사이트 : https://github.com/JaeHyunYu/Algorithm/tree/master/Baekjoon/Level1 Site:https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으..
[백준 11005번] 진법 변환2(파이썬) ▶ 문제 ▶ 풀이 1 사람이 푸는 방식으로 푼 방식 제곱근 중 가장 큰 값을 계속해서 빼는 식으로 구함. becomenum함수 : 10진수로 변화하는 함수 becomealpha함수 : 10진법을 그 이상으로 변환하는 함수 finenum함수 : b진법으로 변환 시, 몇자리 숫자인지를 파악하는 함수 (진법으로 변환시 첫번째 숫자와, 몇자리 수인지 return) 입력받은 숫자가 0이 될때까지 제곱근 중 가장 큰값을 findnum함수를 이용하여 구하고, 뺌으로써 진법변환 실시 ▶ 코드 import math def becomenum(param): return (ord(param)-55) def becomealpha(param): return (chr(param+55)) def findnum(param,param2..
[백준 2563번] 색종이(파이썬) ▶ 문제 ▶ 풀이 수학적 공식으로 접근 시도하였으나 제한됨.. 도화지의 영역이 제한됨(100x100) 2차원배열을 이용하여 전체를 1로 가득채운 100x100 배열 생성 후, 색종이가 붙여진 위치를 0으로 바꿔 0으로 바꿔진 부분만 count 진행하여 해결 ▶ 코드 n=int(input()) total=[[1 for j in range(100)] for i in range(100)] count=0 arr=[] for i in range(n): arr.append(list(map(int,input().split()))) for i in range(n): numa=int(arr[i][0]) numb=int(arr[i][1]) for j in range((numa-1),(numa+9)): for k in ra..