백준/삼성기출문제14 백준 17779 c++ "게리맨더링 2" -PlusUltraCode- https://www.acmicpc.net/problem/17779 [필자 사고]이 문제는 어렵다.. 좀 심한 구현문제이다.인덱스에서 실수가 있으면 문제 진행이 안된다.필자는 처음에 값들을 넣기 위해 bfs탐색을 이용하다가 인덱스 문제인지 범위 문제인지원인을 모른체 답이 다르게 나왔따. 그래서 할 수 없이 부르스트 알고리즘을 이용하여 무식하게 인덱스 처리를 진행하여 값을 넣었다. 이 문제를 통해 배운점은 문제에서 주어진 조건들은 엄청난 힌트 요소이기 때문에 구현문제에서는 잘 읽어보자... 아래는 소스코드 해설이다. Input() 함수Input() 함수는 맵의 크기 N과 각 좌표에 있는 인구 수를 입력받아 MAP 배열에 저장한다. 이 함수는 전체 맵 정보를 초기화하는 역할을 한다.CanMakeLine().. 2024. 11. 9. 백준 15685 c++ "드래곤 커브" -PlusUltraCode- https://www.acmicpc.net/problem/15685 [필자 사고]이 문제는 dy,dx 의 Idx변화량을 이용하는 문제이다.핵심 사고 방식은 (nextIdx+1)%4 회전하는 방식을 왼쪽과 같은 코드로 생각이 날 수 있냐가 관건이다. 처음에 무슨 문제인가 쳐다봤을 때 하나하나 차근차근 문제를 읽고 규칙성을 찾은 결과세대가 변화할 때 최근에 이동한 변화량을 위와 같은 코드로 작성하게 되면 문제를 풀 수 있게 된다. 구현 문제이니 만큼 함수명을 써서 역할을 분담하자!! 아래는 코드 해설이다.코드 설명전역 변수 및 구조체dy, dx: 각각 오른쪽, 위쪽, 왼쪽, 아래쪽 방향을 나타내는 배열입니다.ddy, ddx: 또 다른 방향 배열로, 같은 순서로 오른쪽, 위쪽, 왼쪽, 아래쪽을 나타냅니다.st.. 2024. 11. 7. 백준 15683 c++ "감시" -PlusUltraCode- https://www.acmicpc.net/problem/15683 [필자 사고]이 문제는 구현 문제이다.dx dy 를 이용하여 1번부터5번까지 경우의 수를 나눠서 진행방향으로 나아가야 된다. 필자는 처음에 복사하는 copyArr 을 전역변수로 선언하여 문제가 생겼다.다음부터는 copyArr을 선언하는 변수는 지역 변수로 선언해야 될거 같다. 왜 전역변수로 선언하면 문제가 되냐면 예를들어 2번에서 순수한 arr을 복사시켜 놨는데4번 idx로 dfs를 진행하면 copyArr을 4번에서의 순수한 arr을 또 복사시키게 된다.이렇게 되면 2번 idx로 돌아왔을 때 기존 순수한 2번 arr이 복사가 되는게 아닌다른 값이 복사가 되어져 있기 때문이다. 중요한 부분이다. 아래는 소스코드 상세 해설이다 전역 변수 .. 2024. 11. 4. 백준 14891 c+ "톱니바퀴" -PlusUltraCode- #include #include using namespace std;string gear[4];int isRotate[4];void init() { for (int i = 0; i = 3) return; if (gear[idx][2] != gear[idx + 1][6]) { isRotate[idx + 1] = clock * -1; right_check(idx + 1, clock * -1); }}void check(int idx, int clock) { isRotate[idx] = clock; left_check(idx, clock); right_check(idx, clock); for (int i = 0; i > gear[i]; } int k; int g; int r; cin >> k; for (in.. 2024. 11. 3. 이전 1 2 3 4 다음