본문 바로가기

백준143

백준 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.
백준 3190 c++ "뱀" -PlusUltraCode- https://www.acmicpc.net/problem/3190 [필자 사고]이 문제는 큰 틀에서 보면 BFS 탐색 문제이다. 다만 이 문제만의 특별한 점은 아래와 같다.1. 이동하는 뱀2. 사과를 먹은 후 뱀의 상태3. 뱀의 이동방향4. 벽에 부디치거나 몸통에 부디치면 종료 총 4개로 나눌 수 있다. 필자는 첫 번째 이동하는 뱀과 사과를 먹은 후 뱀의 상태에서 많은 어려움이 있었다.고민의 고민한 결과 큐를 이용하여 뱀의 이동과정을 기록하였다. 다른 분들의 코드를 참고해보면 덱을 이용하신 분들도 있었다. 같은 원리이기 때문에 설명은 생략한다.아래는 소스코드 해설이다. 함수 설명configGoTo()현재 시간에 따라 방향을 변경합니다. path 맵에서 nowTime에 해당하는 방향 변환이 있을 경우, 이.. 2024. 10. 12.
백준 14889 c++ "스타트와 링크" -PlusUltraCode- https://www.acmicpc.net/problem/14889  [필자 사고]여러명의 N명중 N/2명을 골라야 되는 문제이다.즉 조합을 이용하여 해결해야 된다.조합관련한 알고리즘은 재귀형태를 이용한 DFS방식을 사용 하면 된다. 필자는 처음에 N/2명을 조합으로 고른 뒤 다시2명을 조합으로 고르는 형식으로 코드를 작성했다.그 과정에서 많은 벡터들이 만들어지고 불필요한 코드들이 생겨 결국 시간초과라는 결과를 얻었따. 곰곰히 생각해보니 2중 for문을 사용하면 굳이 2명정도는 조합을 사용하지 않아도된다는걸 이 문제를 통해 크게 느끼게 되었다. 아래는 소스코드 해설이다.  Input() 함수:이 함수는 입력 데이터를 처리합니다. 먼저 N명의 사람 수를 입력받고, N x N 크기의 능력치 행렬을 구성합니다.. 2024. 10. 11.