본문 바로가기

전체 글413

백준 13459 c++ "구슬 탈출" -PlusUltraCode- https://www.acmicpc.net/problem/13459 [필자 사고]처음에는 구현문제는 알고 있었지만. Backtracking 을 이용해서 문제를 해결하려 했다. 시간 초과가 발생했고 visited를 선언안해서 그런줄 알았다. 무한한 시간초과를 경험하고 생각해보니 BFS도 해결이 될거같은 느낌이 있었다.그래서 BFS로 전환을 하였고 여기서 처음에 공의 이동거리를 계산하는 로직을 잘못 짜서 많은 실패를 겪었다.또한 visited[][][][] 를 4차원으로 만들어 빨간공과 파란공의 위치를 방문처리하는게 색다른 느낌이 들고 좋았다. 또한 queue가 더이상 실행되지 않을경우 마지막에 cout 하나의 구현문제지만 여러가지 실수들을 고칠 수 있게 되어서 좋은 문제였따.[코드 해설]Input() 함수.. 2025. 8. 8.
백준 2470 c++ "두 용액" -PlusUltraCode- https://www.acmicpc.net/problem/2470 [필자 사고]투포인터 문제다. N이 10000으로 주어져 있어 2중 for문을 돌게 되면 시간초과가 발생한다.이 문제의 재미난 점은 반드시 값은 음수 아니면 양수가 나온다는 점이다.이로 인해 음수가 나오면 왼쪽 point를 하나 증가 양수가 나오면 오른쪽 포인터를 감소 하는 형태로 문제를 해결할 수 있따. 반드시 정렬은 필수다 .[코드 해설]Input()사용자로부터 입력을 받는 함수이다.먼저 수의 개수 N을 입력받는다.크기 N의 벡터 arr를 선언하고, N개의 정수를 입력받아 채운다.입력이 끝난 후, arr를 오름차순으로 정렬한다.이 정렬은 이후 투 포인터 알고리즘에서 두 수의 합을 탐색하기 위해 필수적이다.Game_Start()두 수를 .. 2025. 8. 1.
백준 19237 c++ "어른 상어" -PlusUltraCode- https://www.acmicpc.net/problem/19237 [필자 사고]3일만에 푼 문제다.계속 틀렸따. 이유를 분석해보자 1. 각 상어들의 위치마다 우선순위 가 있다. 2. 처음 상어들은 빈칸 먼저 방향 우선순위 탐색한다 3. 빈칸이 없으면 자기 냄새 있는 우선순위 탐색을 한다.필자는 이 부분에서 두개를 독립적으로 했어야 됬는데 하나로 하는 바람에 계속 틀렸다. 4. 방향을 찾으면 방향을 갱신해준다.5. 한 위치에 여러명의 상어들이 존재하게 된다.6. 충돌 해결 배열을 3차원으로 만들억서 해결해야 한다.7. 충돌 해결 로직은 이동이 다 완료된 배열 바깥에 선언한다.8. 냄새 퍼짐을 감소시키는 로직을 추가해야 한다.9. 냄새 퍼질때 alive 배열을 이용하여 죽은 상어들은 건너 뛴다. 이런식의 .. 2025. 8. 1.
백준 9328 c++ "열쇠" -PlusUltraCode- https://www.acmicpc.net/problem/9328 [필자 사고]단순한 탐색 구현 문제인줄 알았다.특정 위치에 문이 있다 그리고 열쇠로 열수 있다라는 조건으로 인해 많은게 변했다.다른 분들의 풀이를 참고하면 열쇠를 획득시 bfs를 다시 돌리는 형태로 구현을 하신 분들도 있엇다.필잔느 문의 위치를 저장할 만한 저장소를 만들고 열쇠를 획득시 해당 저장소에서 인덱스들을 꺼내 queue에 넣어서 탐색을 진행했따. 또한 이 문제에서 편리하게 외부 공간을 들어갈 수 있게 외곽을 모두 '.'형태로 초기화를 진행했다. 아래는 자세한 코드해설이다.[코드 해설]Input() 함수 해설N, M을 입력받고, 각종 배열들을 초기화합니다.arr 배열은 실제 맵을 저장하며, 외곽(0N+1, 0M+1)은 '.'으로.. 2025. 7. 27.