본문 바로가기

알고리즘 문제/완전탐색4

[개쉬운 풀이] 백준 15683 감시 CPP (11일차) 문제https://www.acmicpc.net/problem/15683 생각1. 먼저, CCTV의 최대 갯수가 8개 이므로 각각의 CCTV 방향을 모두 고려해서 해결해야하는 완전탐색 문제이다.2. 여기서 CCTV가 감지한 부분을 처음에는 단순하게 #처리 하려고 했지만, 백트래킹하는 과정에서 #이 겹치고 삭제되면서 오류가 발생할 수 있다는 것을 인지하였다.3. 따라서 isVisited를 통해 +1과 -1을 하는 방식으로 진행하였다.4. CCTV는 CCTV를 통과할 수 있으며, CCTV는 일직선으로 탐지하고 각 타입에 따라 방향이 다르다.5. 즉, 일직선으로 탐지하는 코드 하나에 각 타입별로 탐지 코드를 넣어서 작성하였다.6. 마지막 출력을 진행할때, isVisited가 0이고 map에서 0인 부분을 cou.. 2024. 12. 2.
[개쉬운 풀이] 백준 22251 빌런 호석 https://www.acmicpc.net/problem/22251생각처음에는 자릿수의 숫자를 바꾸어가면서 새로운 숫자를 만드는 방식을 생각했다.그러나 반대로 1층부터 N층까지 현재 숫자에서 가능한 숫자를 만드는 방법 (역순)이 수월하다고 판단하였다.따라서 각 숫자에 해당하는 LED 배열을 만들어 놓고, 각 자릿수마다 가능한 숫자를 만든다.풀이1. 입력값을 받는다 : input()2. 1층부터 N층까지 X층과 비교하며 가능한 숫자들을 answer에 카운팅한다. : sol()3. X와 i번 숫자를 비교한다 : process()4. 이때 K자리수 만큼 비교하며 각 자리수에 해당하는 7개의 LED를 비교하면서 cnt를 통해 카운트한다.5. cnt값이 최대 P개보다 적거나 같다면, i번째 숫자는 가능한 경우이다.. 2024. 9. 28.
[개쉬운 풀이] 백준 1027 고층 건물 https://www.acmicpc.net/problem/1027문제세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작)은 (i,0)부터 (i,높이)의 선분으로 나타낼 수 있다. 고층 빌딩 A에서 다른 고층 빌딩 B가 볼 수 있는 빌딩이 되려면, 두 지붕을 잇는 선분이 A와 B를 제외한 다른 고층 빌딩을 지나거나 접하지 않아야 한다. 가장 많은 고층 빌딩이 보이는 빌딩을 구하고, 거기서 보이는 빌딩의 수를 출력하는 프로그램을 작성하시오.생각맨 왼쪽부터 오른쪽 건물이 보이는 경우의 수를 생각한다.보이는 건물에 각각 +1을 해준다.그러면 왼쪽의 건물은 고려할 필요 없이.. 2024. 9. 5.
[개쉬운 풀이] 백준 2116 주사위 쌓기 https://www.acmicpc.net/problem/2116 2116번: 주사위 쌓기 첫줄에는 주사위의 개수가 입력된다. 그 다음 줄부터는 한 줄에 하나씩 주사위의 종류가 1번 주사위부터 주사위 번호 순서대로 입력된다. 주사위의 종류는 각 면에 적혀진 숫자가 그림1에 있는 www.acmicpc.net 문제 천수는 여러 종류의 주사위를 가지고 쌓기 놀이를 하고 있다. 주사위의 모양은 모두 크기가 같은 정육면체이며 각 면에는 1부터 6까지의 숫자가 하나씩 적혀있다. 그러나 보통 주사위처럼 마주 보는 면에 적힌 숫자의 합이 반드시 7이 되는 것은 아니다. 주사위 쌓기 놀이는 아래에서부터 1번 주사위, 2번 주사위, 3번 주사위, … 의 순서로 쌓는 것이다. 쌓을 때 다음과 같은 규칙을 지켜야 한다: 서로.. 2024. 3. 5.