전체 글321 백준 2293 c++ "동전 1" -PlusUltraCode- https://www.acmicpc.net/problem/2293 [필자 사고]LIS 문제를 이용한 dp문제이다.다만 다른점은 경우의 수를 구해야 되는 것이다.LIS문제는 +1형태로 계속 누적하는 거지만 경우의 수는이전 수를 += 형태로 더해나가야 된다. 필자는 +=이 부분을 생각을 하지 못하여 풀지 못했다.경우의 수는 누적 더하기라는 교훈을 알게 되었다.[코드 해설]2. 입력 처리 (Input 함수)Input() 함수는 먼저 표준 입력을 통해 동전의 개수(N)와 목표 금액(K)을 입력받는다. 이후, 동전 정보를 저장할 coin 벡터를 크기 N+1로 할당하고, 결과를 저장할 dp 벡터를 크기 K+1로 초기화한다.그 후, 사용자가 입력한 동전의 가치를 coin 벡터에 저장한다.3. DP를 이용한 해결 (G.. 2025. 3. 9. 백준 11559 c++ "Puyo Puyo" -PlusUltraCode- https://www.acmicpc.net/problem/11559[필자 사고]구현 문제이다.구현 문제들의 특징은 여러개의 함수를 만들어서 역할을 분리해야 하는게 keyPoint다필자는 문제에서 말하는 의도를 잘못 해석하여 계속 해맷었다. 일단 사용한 기술은 gravity 그리고 bfs로 같은 구역 점검하기 정도?? 쓴거 같다.아래는 자세한 코드 해설이다. [코드 해설]2. 입력 처리 (Input 함수)Input() 함수는 게임 보드(12행 × 6열)를 입력받아 arr 벡터에 저장한다.arr 벡터를 12x6 크기로 초기화한다.12개의 문자열을 입력받고, 각 문자열의 문자를 2차원 벡터 arr에 저장한다.3. 좌표가 유효한지 검사 (isInside 함수)isInside(int sero, int garo) .. 2025. 3. 8. 백준 14728 c++ "벼락치기" -PlusUltraCode- https://www.acmicpc.net/problem/14728 [필자 코드]기본적인 배낭알고리즘 문제이다.배낭 알고리즘의 본인만의 팁은 현재 값에서 특정값까지 하나하나 갱신해 간다는 느낌으로 하면 쉽게 문제를 해결할 수 있다.다만 배낭문제에서 작은거에서 큰거로 접근하게 되면 중복되는 값이 발생할 수 있다.그래서 끝에서 부터 접근해야 된다. 큰곳에서 작은곳으로이 문제를 풀면서 알게 된 사실이다.[코드 해설]2. 입력 처리먼저, N과 T를 입력받는다. 여기서 N은 선택할 수 있는 항목의 개수이며, T는 총 제한된 시간이다. 그런 다음, dp 벡터를 크기 T+1로 설정하여 각 시간에 대해 얻을 수 있는 최대 점수를 저장한다.3. 동적 계획법을 이용한 최적해 탐색각 항목에 대해 K(소요 시간)와 S(얻을 .. 2025. 3. 8. 백준 1240 c++ "노드사이의 거리" -PlusUltraCode- https://www.acmicpc.net/problem/1240 [필자 사고]그래프 문제이다.단순히 특정 노드사이의 거리를 요구하는 문제이므로 너비우선 탐색인 BFS탐색으로 문제를 해결했다.매번 방문배열을 체크해서 방문한 곳은 true를 처리하고 특정 지점에 도달할 경우 그동안의 weight을 반환한다.BFS 너비우선탐색 기본 문제로 좋은거 같다.[코드 해설]1. 입력 처리 (Input 함수)Input() 함수는 그래프 정보를 입력받아 인접 리스트 형태로 저장하는 역할을 합니다.먼저, 노드 개수 N과 쿼리 개수 M을 입력받습니다.arr 벡터를 크기 N+1로 초기화하여 1번 노드부터 접근할 수 있도록 합니다.visited 벡터 역시 크기 N+1로 설정하여 방문 여부를 관리합니다.N-1개의 간선을 입력받아.. 2025. 3. 6. 이전 1 2 3 4 5 ··· 81 다음