알고리즘(27)
-
[알고리즘/파이썬] 백준 2178 - 미로탐색
2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net BFS를 적용하면된다. DFS는 Stack이용, BFS는 Queue를 이용한다. NxM과 크기가 똑같은 리스트를 0으로 채워넣은 v_maze를 생성한다. v_maze에는 내가 해당위치에 몇번째 만에 도착했는지를 기록한다. n,m = map(int,input().split()) # 미로 maze = [] # 몇번째만에 방문했는지 기록하기 위한 list v_maze = [[0 for _ in range(m)] for _ in range(n)] for _ in range(n): tmp = input..
2020.07.07 -
[알고리즘/파이썬] 백준 1992번 - 쿼드트리
백준에서 분할정복(divide and conquer)과 관련된 기초적인 문제를 풀어봤다. 분할정복은 이름에서도 알고리즘 컨셉을 유추할 수 있다. 한개의 큰 문제를 다수의 작은 문제로 쪼개고 쪼개진 문제의 해답을 구해 그 값들을 모으면 큰 문제의 해답이 된다는 개념. https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1≤N ≤64의 범위를 가진다. 두 번째 줄부터는 길이 N 의 문자열이 N 개 들어온다. 각 문자열은 0 또는 www.acmicpc.net 위 문제를 풀기위해서 재귀를 많이 사용한다. 재귀는 아래 그림과 같이 함수내에서 똑같은 함수를 다시 호출하는 방법을 말한..
2020.06.14 -
[알고리즘/파이썬] 백준 7568번 - 덩치
백준에서 브루트포스로 분류된 알고리즘 문제를 풀어봤다. 브루트 포스는 모든 경우의 수를 다 확인해보는 방법. https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩� www.acmicpc.net 처음에는 뭣도 모르고 정렬해서 처리하려고 했는데, 등수가 판단 되지 않을경우는 동순위로 처리해야하기 때문에 아래와 같이 구현했다. # 입력 persons_cnt = input() person_list = [] for _ in range(int(persons_cnt)): a = ..
2020.05.31