본문 바로가기

C++106

[백준][구현] 15685 드래곤 커브 c++구현 목차https://www.acmicpc.net/problem/15685문제 문제 구현 방향각 드래곤의 방향을 구한뒤 맵과 벡터에 좌표를 넣고 탐색하는 식으로 구현했다. 문제 아이디어 1. 드래곤의 방향을 넣고 좌표 구하기드래곤의 움직임은 결국 방향벡터의 size만큼 세대별로 거꾸로 탐색해 방향벡터+1을 더한 값을 넣어주면 된다.void dragonMoving() { vector direct; for (int i = 0; i = 0; j--) { direct.push_back((direct[j] + 1) % 4); } } int sx = v[i].x; int sy = v[i].y; if.. 2024. 8. 17.
[백준][구현][백트래킹] 17825 주사위 윷놀이 c++구현 목차https://www.acmicpc.net/problem/17825문제 문제 구현 방향인접리스트에 저장해놓고 말 4개를 백트래킹하는 방식으로 구현했다.말 4개를 10번 움직이는 것이므로 4^10이라는 탐색 시간은 충분히 구현할 수 있다.   문제 구현 시 주의점말이 모일 때 예외처리를 매우 잘해주어야 한다. (25, 30, 35, 40)도착지에 가면 말은 바로 멈춘다는 사실도 주의해야 한다.또한 도착지에는 말이 여러개 갈 수 있다는 사실을 주의해야 한다.  코드 구현#include #include using namespace std;vector v[10] = { {0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,.. 2024. 8. 17.
[백준][구현] 17143 낚시왕 c++구현 목차https://www.acmicpc.net/problem/17143문제 문제 구현 방향상어 구조체에 death를 추가했으면 더 쉽게 풀 수 있었던 문제인데 배열에 넣고 담을려 해서 더 돌아갔다.  문제 아이디어1. 속도 단위로 줄이기 아래와 같이 상어는 갔다 돌아오는 것이므로 %연산자로 속도를 줄일 수 있다. for (auto& sh : v) { if (sh.direct  2. 상어의 방향성 구현하기아래와 같이 코드를 짜면 한번에 이동을 구현해 시간 초과가 나지 않는다.끝에 도달할 경우를 잘 생각해 보면 while문안에서 최대 두번 돌고 구현할 수 있다. for (auto& sh : v) { int d = sh.direct; int x = sh.x; int y .. 2024. 8. 16.
[백준][브루트포스][구현][백트래킹] 12100 2048 c++구현 목차https://www.acmicpc.net/problem/12100문제 문제 구현 방향 및 아이디어생각보다 어려웠다. 아이디어는 슬라이드를 어떻게 하든 90도 돌리면 결과는 같다는 것이다.따라서 회전하는 횟수에 따라서 슬라이드를 반복하는 재귀를 잘 구현하면 되는 문제였다.  1. 90도 회전 아이디어아래와 같이 하면 90도 회전을 구현할 수있다.void rotate(int board[41][41]) { int temp[41][41] = { 0 }; for (int i = 0; i  2. 슬라이디 아이디어90도 회전할 것이기 때문에 한 방향만 구현해 주면 된다.void slide(int board[41][41]) { int temp[41][41] = { 0 }; for (int i.. 2024. 8. 13.
728x90