백준/그래프83 백준 16928 c++ "뱀과 사다리 게임" -PlusUltraCode- https://www.acmicpc.net/problem/16928 [필자 사고]BFS문제이다.필자는 이 문제에서 배운점은 아래와 같다.한번 뱀 혹은 사다리를 만나게 되면 한번만 이동할 수 있는게 아니라 계속 이동할 수 있다는 것이다.그래서 while문을 이용하여 계속 이동할 수 있게 코드를 구성해야 된다.또한 vistied방문 처리를 2번 설정해야 완전하게 검사가 된다. 이 부분을 배우게 되었다. 좋은 문제였다.아래는 자세한 코드 해설이다.[코드 해설]1. 입력 처리 (Input 함수)먼저, 보드의 크기와 뱀 및 사다리 정보를 입력받습니다.N개의 사다리와 M개의 뱀을 입력받습니다.각각의 사다리와 뱀은 특정 칸에서 다른 칸으로 이동하는 역할을 합니다.이를 map[x] = y 형태로 저장하여, x번 칸에 .. 2025. 3. 4. 백준 1194 c++ "달이 차오른다, 가자." -PlusUltraCode- https://www.acmicpc.net/problem/1194 [필자 사고]기본적인 탐색 알고리즘을 이용하여 푸는 문제이다.이 문제만의 특이한 점은 비트마스킹 즉 현재 키를 가지고 있으면 on/off 를 수행하게 해주는 비트마스킹을 이용해야 된다는 점이다.또한 이 문제를 풀면서 배운점은 visited를 2차원 배열로 선언하게 되면 방문했떤 지점을 어떻게 초기화 시킬지 고민이였는데 3차원 배열로 선언하여 추가된 인덱스의 범위를 1[코드 해설] Input 함수Input 함수는 미로의 크기(N, M)와 미로 데이터를 입력받습니다.미로는 vector> 형태의 2차원 배열로 저장됩니다.입력 도중 시작 위치(0)를 찾아 변수 originX와 originY에 저장합니다.visited 배열은 특정 위치와 열쇠 상태.. 2025. 1. 5. 백준 1005 c++ "ACM Craft" -PlusUltraCode- https://www.acmicpc.net/problem/1005 [필자 사고]이 문제는 위상정렬 문제이다.다른 위상정렬 문제와 다른 이 문제만의 특이점은 아래와 같다. 자신이 걸리는 건물의 시간과이 건물을 짓기 위한 그 동안의 시간을 더해야 된다는 점이다. 필자는 자신이 걸리는 건물의 시간은 마지막에 더하는 방식으로 진행하였따.그 동안의 시간을 더하는 방식은 max함수를 이용하여 더 오래 걸리는 건물시간을 우선순위로 정했다. 아래는 소스코드 해설이다. 초기화 및 입력 처리:initVec(int N) 함수는 각 벡터(makeTime, dCount, linkArr, resultTime)를 크기 N+1N+1N+1로 초기화합니다.입력 함수 Input()은 각 테스트 케이스에 대해 프로젝트 개수 NNN과 관계.. 2024. 11. 10. 백준 14888 c++ "연산자 끼워넣기" -PlusUltraCode- https://www.acmicpc.net/problem/14888 [필자 사고]연산자를 끼워넣어 최대값 혹은 최소값을 만들어야 되는 문제이다.현재 N의 값은 최대11이므로 시간복잡도 측면에서 너그럽다. 필자는 DFS를 이용하여 조합알고리즘을 작성하였다. 글로 설명하자면 + - * / 가 있을때 하나하나를 숫자 사이에 배치해 둔다.DFS알고리즘을 이용하면 일단 하나의 문장을 완성하고 마지막 부분만 연산자를 거둔뒤 사용안한 연산자를 넣는 방식으로 코드를 작성하였다. 주의할 점은 DFS의 매개변수를 어떻게 설정하는지가 중요하다. 아래는 필자가 작성한 코드해설이다. 코드 흐름 설명:변수 및 배열 초기화:arr는 입력된 숫자들을 저장하는 배열입니다.buho는 각 연산자의 개수를 저장하는 배열로, 덧셈, 뺄셈.. 2024. 10. 4. 이전 1 2 3 4 5 ··· 21 다음