완전 탐색의 접근방법과 사용할 수 있는 방법들
2022. 11. 22. 23:02
Algorithm/BruteForce
완전 탐색의 개요와 접근 방법 완전 탐색(Brute Force)의 개념은 말 그대로 모든 가능성을 계산하고 정답을 찾는 유형의 문제이다. 일반적인 완전탐색은 접근법만 알면 매우 쉬워져 까다롭게 만들 경우에 구현 문제도 같이 섞여 들어오는 경우도 있다. 우선 문제가 완전 탐색인가를 확인하기 위해서는 다음을 확인해보면 좋다. 계산해야할 입력 데이터의 길이나 범위 N의 값이 작다 모든 경우의 수를 찾는 방법이기 때문에 해당 경우의 수를 찾는데 시간이 꽤 소요되므로 1~2초 정도의 시간제한이 있는 문제라면 입력 데이터의 길이나 범위가 작을 수 밖에 없다. 그리디로 해결해보려고 할 경우에 최적해를 찾을 마땅한 방법이 떠오르지 않는다. 말 그대로 그리디로 해결해보려고 하면 최적해를 찾기 매우 힘들거나 방법이 잘 보..
백준 17836 공주님을 구해라 [BOJ 17836]
2022. 11. 2. 22:50
Algorithm/BFS, DFS
https://www.acmicpc.net/problem/17836 17836번: 공주님을 구해라! 용사는 마왕이 숨겨놓은 공주님을 구하기 위해 (N, M) 크기의 성 입구 (1,1)으로 들어왔다. 마왕은 용사가 공주를 찾지 못하도록 성의 여러 군데 마법 벽을 세워놓았다. 용사는 현재의 가지고 있는 www.acmicpc.net 풀이 방법 검을 습득할 시 모든 벽을 통과할 수 있다. 그 전에는 벽을 통과하지 못하므로, 두 개의 맵을 준비해야 한다. 하나는 검을 습득하지 못한 상태로 이동하는 맵, 다른 하나는 검을 습득한 상태에서의 맵이다. 두 개의 맵이 준비되어야 하므로 맵은 3차원 리스트 형태(배열 형태)가 되어야 할 것이다. 물론 방문 확인 배열 역시 3차원이 되어야 한다. 만약 검이 용사가 이동할 수..
백준 25635 자유 이용권 [BOJ 25635] python
2022. 11. 1. 22:45
Algorithm/Greedy
https://www.acmicpc.net/problem/25635 25635번: 자유 이용권 자유 이용권은 놀이공원의 모든 놀이기구를 횟수의 제한 없이 마음껏 이용할 수 있는 이용권이다. 준원이는 ANA 놀이공원의 자유 이용권을 구매했고, 최대한 많이 놀이기구를 이용할 생각이다. www.acmicpc.net 접근 방법 처음에 볼 때 바로 생각나는건 방문 배열을 이용해서 방문 하지 않은 원소들 중 최대값인 원소를 1 줄이고, 타는 횟수를 1늘리는 것이었다. 그 코드가 아래였다. N = int(input()) play_count = list(map(int, input().split())) cnt = 0 is_played = [False for _ in range(N)] max_idx = 0 prev_max..