본문 바로가기

구현10

[백준] 2931번 가스관 (C++) https://www.acmicpc.net/problem/2931 처음에 이 문제를 보고 M에서 부터 시작하여 Z까지 연결되어 있어야 하기 때문에 M에서 부터 탐색을 해야겠다고 생각을 하였다. 그러다 보니 고려해야할 사항이 많아졌다 일단 파이프가 총 7가지가 있으며 각자 파이프가 흐를 수 있는 방향이 여러가지이기 때문에구현하기가 너무 복잡하였다. 다른 어떤 방법이 있을까 생각해 보았는데 어차피 하나의 칸에 하나의 블록만 들어맞기 때문에 파이프를 탐색하면 어떨까 생각하였다. 즉 파이프를 탐색하면서 파이프가 갈 수 있는 방향을 탐색하여 빈칸이 있는지 탐색하는 방법이다만약 빈칸이 있는 경우 그 칸은 파이프를 놓아야 하는 칸이며 빈칸 입장에서는 파이프가 갈 수 있는 방향의 역방향으로 흘러야 하기 때문에파이프.. 2025. 7. 19.
[백준] 22251번 빌런 호석 (C++) https://www.acmicpc.net/problem/22251 보고 뭔가 구현문제인것 같았고 모든 경우의 수를 탐색해야겠다고 생각했다. 먼저 K개의 자리수 와 초기 위치 X에서 갈 수 있는 경우의 수는 자리 수 마다 0~9까지 변할 수 있으며순열을 구하는 경우의 수와 같으며 백트래킹을 사용해서 구현하면 된다고 생각했다. 이때 세그먼트 즉 각 자리수마다 세그먼트가 7개씩 있으며 숫자가 바뀔 경우 기존에 있는 세그먼트와 바뀐 세그먼트의 차이를 구해야하는데이 문제를 어떻게 해결할까 생각하다 세그먼트가 켜진곳은 true, 꺼진곳은 false를 사용해서 문제를 정의하면 된다고 생각하였다. bool check[10][7] = {{true, true, true, false, true, true, true},.. 2025. 6. 1.
[백준] 16719번 ZOAC (C++) https://www.acmicpc.net/problem/16719 문제를 읽어 본 후 테케 1, 2 번을 보고 재귀를 사용해서 가장 앞에 오는 문자를 기준으로먼저 오른쪽 탐색 후 왼쪽 탐색을 해서 같은 방법으로 찾으면 된다고 생각했다. #include using namespace std;typedef pair pii;typedef long long ll;#define endl "\n"#define MAX 1e9struct coordinate { int x; int y;};int dx[] = {-1 ,1, 0, 0, -1, -1, 1, 1};int dy[] = {0, 0, -1, 1, -1, 1, -1, 1};string s;bool visited[100];/* * 보여주지 않은 문자열 .. 2025. 6. 1.
[백준] 18428 감시 피하기 (C++) https://www.acmicpc.net/problem/18428 먼저 N * N 복도 배열을 입력 받을 때 구분하기 쉽게 하기 위해서 선생님(2), 학생(1), 빈칸(0), 장애물(-1)인 정수로 구분하였다.또한 빈칸의 좌표, 학생의 좌표, 선생님의 좌표를 저장하기 위해서 3개의 백터 리스트를 선언하였고x,y 값을 가지고 있는 구조체를 만들었다. 이후 장애물을 위치할 모든 경우의 수를 구해야 하는데 이때 백트래킹을 사용하여 조합을 구현하였다.장애물의 위치가 고정되어 있지 않고 경우의 수에 따라 복사할 그래프도 함께 선언하였다. struct coordinate { int x; int y;};int dx[] = {-1 ,1, 0, 0, -1, -1, 1, 1};int dy[] = {0, 0.. 2025. 5. 5.