전체 글548 백준 7579 c++ "앱" -PlusUltraCode- https://www.acmicpc.net/problem/7579[필자 사고]dp문제 일종의 배낭 문제다.왜우자.. 이거는 익숙하지가 않다.어떤 메모리가 있고 그거에 따른 비용이 있다. 이럴 경우 dp는 아래와 같이 만든다.dp[i][j] i번째 앱을 사용할때 j번 비용으로 건질수 있는 최대 메모리.. 왜우자 그냥 딱히 방법이 없다. 아래는 자세한 코드 해설이다.[코드 해설]1. 프로그램 개요이 프로그램은 여러 앱을 비활성화하여 필요한 메모리 M 이상을 확보하되,그때의 최소 비용을 계산하는 문제를 해결한다.각 앱은 메모리를 확보할 수 있지만, 그만큼의 비용이 들며어떤 조합이 가장 효율적인지를 동적 계획법(Dynamic Programming) 으로 구한다.2. 입력과 기본 설정먼저 사용자로부터 다음과 같은.. 2025. 10. 10. 백준 1937 c++ "욕심쟁이 판다" -PlusUltraCode- https://www.acmicpc.net/problem/1937[필자 사고]처음에 BFS탐색으로 진행하려 했지만 아무리 생각해도 이미 방문한 곳의 갯수를 갱신하는 방법이 떠오르지 않았다.DFS로 탐색하자 DFS를 이용하면 이미 방문한 곳이 갯수를 반환할 수 있다. DFS 재귀를 만들때 고려하면 좋은점을 정리해보자.처음 노드 , 마지막 노드 , 중간노드이 3가지 노드들이 원하는 것들을 생각하면서 dfs를 짜면 쉽게 작성할 수 있다고 생각이든다. 괜찮은 문제였따.[코드 해설]1. main 함수프로그램의 전체 흐름을 제어한다.먼저 입력을 받고, 전체 숲 정보를 forest에 저장한다.각 위치에서 DFS 탐색을 시작하여 이동 가능한 최대 칸 수를 구하고,그 중 가장 큰 값을 answer에 저장해 출력한다.f.. 2025. 10. 9. 백준 9466 c++ "텀 프로젝트" -PlusUltraCode- https://www.acmicpc.net/problem/9466[필자 사고]재미난 문제다. dfs탐색을 이용해야 되는 문제인데 이 문제만의 핵심 포인트는 순환을 어떻게 처리할지에 관한것이다.만약 dfs탐색도중 이미 방문한 곳이 다음 곳이라면 성공!! 순환이 발생한 것이다.이럴 경우 for문을 이용해 다시 원위치로 될때가지 반복문을 돌린다. 그 다음 마지막에 완전 탐색 완료 표시인 visited[now] = 2를 통해 탐색을 종료한다. 아래는 자세한 코드 해설이다.[코드 해설]이 문제는 학생들이 한 명씩 “함께 프로젝트를 하고 싶은 학생”을 선택했을 때, 그 결과로 만들어지는 연결 관계 속에서 사이클(순환) 을 이루는 학생들만이 팀을 구성할 수 있다는 점을 이용한다. 즉, 사이클에 포함되지 않은 학생은.. 2025. 10. 9. 백준 1188 c++ "음식 평론가" -PlusUltraCode- https://www.acmicpc.net/problem/1188[필자 사고]재미난 문제다. 수학적 사고로 접근해보자. N개의 덩어리가 있다. 이어 붙여보자 그러면 N-1개의 주름이 생긴다. 우리는 하나로 이어졌다 가정하고 M개로 나누고 싶다. 그렇게 되면 M-1개의 주름을 만들어야 된다.근데 여기서 재미난게 N-1개의 주름과 M-1개의 주름이 공통된 부분이 생길 수 있따는 점이다.즉 우리가 원하는 값 M-1개에서 공통된 부분을 빼야한다. M-1 -(gcd(N,M) -1) 를 하게 되면 정답이 된다.[코드 해설]함수명: gcd이 함수는 두 정수 a와 b의 최대공약수(Greatest Common Divisor) 를 계산한다.인자로 받은 두 수 a와 b 중, b가 0이 아닐 동안 반복문을 수행한다.현재 a를.. 2025. 10. 8. 이전 1 ··· 4 5 6 7 8 9 10 ··· 137 다음