[백준]

· [백준]/C++
https://www.acmicpc.net/problem/15752  #문제 간단 정리 #문제 해결 방법 이 문제에서 중요한건 그래프 문제로 바꿔서 생각하는 것이다 일단 전달되는 것에서 그래프를 착안 할 수 있는데전달되는걸 간선으로 처리한다고 하면 진입차수가 0인 소들은 농부가 직접 전해줄 수 밖에 없다때문에 그래프 탐색으로 진입차수가 0인 소들의 진입들을 처리해주면 진입차수가 1 이상인 소들이 남아있을텐데진입차수가 1인데 방문이 안됫다는 이유는 서로 거리가 같아서 주고 받기 때문에  노드 A는 노드 B에게 공을 전달하고,노드 B는 노드 A에게 공을 전달합니다.와 같은 상황이 생기기 때문이다 즉 이렇게 진입차수가 1이상인 것들의 방문을 처리하면서 필요한 공 개수를 체크해 주면된다  결론적으로 그래프로 바..
· [백준]/C++
https://www.acmicpc.net/problem/2193  #문제 간단 정리 기본적인 dp 문제  #문제 해결 방법     // 이친수는 1이 두번 나타나지 않음     // dp[i][j] = i길이의 j로 끝나는 이친수 의 개수 =     //dp[i][0] = dp[i-1][0] + dp[i-1][1]      // dp[i][1] = dp[i-1][0]  #전체 코드#include #include #include using namespace std;int main() { long long n; cin >> n; vector> dp(n+1,vector(2)); // 이친수는 1이 두번 나타나지 않음 // dp[i][j] = i길이의 j로 끝나는 이친수 의 ..
· [백준]/C++
https://www.acmicpc.net/problem/7861  #문제 간단 정리가장 긴 부분수열 찾는문제 dp 이고 웰노운이다 #문제 해결 방법웰노운 문제라서 따로 해설을 첨부하지는 않겟다. #전체 코드#include #include using namespace std;int main() { int n; cin >> n; vector vec(n); for (int i = 0; i > vec[i]; } vector dp(n,1); int maxlen = 1; for (int i = 0; i vec[j] && dp[j] + 1 > dp[i]) { dp[i] = dp[j] + 1; maxlen = m..
· [백준]/C++
https://www.acmicpc.net/problem/6207 #문제 번역 문제 설명소들은 소풍을 가고 싶어 합니다! Farmer John의 K마리 소들은 각각 N개의 목초지 중 한 곳에서 풀을 뜯고 있습니다. 목초지는 1번부터 N번까지 번호가 매겨져 있으며, 일방통행 경로 M개로 연결되어 있습니다(경로는 자기 자신을 연결하는 경우는 없습니다).소들은 동일한 목초지에서 만나 소풍을 가고 싶어 하지만, 일방통행 경로로 인해 어떤 소들은 특정 목초지로만 갈 수 있을 수도 있습니다. 모든 소들이 도달할 수 있는 목초지가 몇 개인지 찾아서 소들이 만날 수 있는 소풍 장소를 정해주세요.입력1번째 줄: 세 개의 정수 K, N, M이 공백으로 구분되어 주어집니다. (1 ≤ K ≤ 100, 1 ≤ N ≤ 1,000..
· [백준]/C++
https://www.acmicpc.net/problem/18221  #문제 간단 정리 #문제 해결 방법  문제그대로 구현하면된다 #전체 코드#include #include #include #include #include using namespace std;vector> board;pair prof, sung;int n;// 학생을 세는 함수bool CountingStudents(int ys, int ye, int xs, int xe, bool sameLine) { int count = 0; if (sameLine) { // 같은 행 또는 같은 열일 경우 if (xs == xe) { // 같은 행 for (int j = ys; j = 3;}int m..
· [백준]/C++
https://www.acmicpc.net/problem/15812#문제 간단 정리bfs 나 혹은 브루트 포스로 풀 수 있는 문  #문제 해결 방법 우선 감염원 두개를 고르는 로직이 필요하고 그리고 감염원에서 각 마을까지의 최대 거리를 찾아주는 bfs를 사용해도 되고 한칸씩 전염되는 시뮬레이션을 만들어도 된다 나는 후자로 했다 이렇게 시뮬레이션 할때 중요한건 맵을 복사해서 상태를 감염 진행을 만드는게 중요하다 아래 코드에선 tempBoard라고 보면 될거다  #전체 코드#include #include #include #include using namespace std;vector> board;vector> tempBoard;int n, m;int dx[4] = { -1,0,1,0 };int dy[4] =..
· [백준]/C++
https://www.acmicpc.net/problem/24595  #문제 간단 정리문제는 간단하니 번역은 안달아두겠다 대략 같거나 증가하는부분 같거나 감소하는 두 부분으로 이루어진 숫자를 만드는데주어진 숫자와 같거나 작은수중에서 가장 큰 숫자를 만들면 된다 그리디 문제이다  #문제 해결 방법 우선 증가할때는 그대로 놔두는게 최선책이다 왜냐하면 앞자리수를 하나 내리게 되면 가장 손실이 크기 때문에일단 증가하면 그대로 놔두고 감소할때가 관건인데 감소할 때 숫자가 작아진다면계속 작아지게 놔두고만약 작아지다가 작아진 값보다 큰 값이 나온다면 그 이전 값으로 전부 통일시켜주면 된다예를들어서 1234543291111이라면 123454322222가 되는거다 왜냐면91111보다 22222가 작은 수가 되기 때문이다..
· [백준]/C++
https://www.acmicpc.net/problem/15423    #한국어 번역설명:화폐 시스템 S는 실제 또는 가상의 화폐 시스템에서 동전의 값을 나타내는 고유한 양의 정수들의 유한 집합(비어있지 않은 집합)입니다. 예를 들어, 캐나다에서 사용되는 화폐 시스템은 {1, 5, 10, 25, 100, 200}으로, 1은 1센트 동전을 나타내고 200은 2달러(200센트)를 나타냅니다. 우리는 동전이 무한히 많다고 가정하며, S에는 항상 1이 포함된다고 가정합니다. 1이 포함된다는 것은 모든 양의 정수를 동전들의 합으로 표현할 수 있음을 보장합니다.전 세계의 계산원들은 다음과 같은 문제에 직면합니다: 주어진 화폐 시스템과 고객에게 갚아야 할 양의 정수 금액이 있을 때, 정확히 그 금액을 맞추기 위해 ..
· [백준]/C++
https://www.acmicpc.net/problem/16305#한국어 번역Bobby는 새 회사에 입사했고, 인사팀에서 그의 생일을 사무실 달력에 기록하도록 요청했습니다. Bobby the Birthday Boy는 특별하게 느끼고 싶어 합니다! 또한, Bobby the Birthday Boy는 주목받기 위해 거짓말을 하는 것을 꺼려하지 않습니다.그는 사람들이 생일을 축하하지 않거나 케이크를 먹지 않은 기간이 길어질수록 새로운 생일이 찾아올 때 더 좋아한다는 것을 알아챘습니다. 그래서 가능한 한 긴 생일이 없는 기간이 막 끝난 시점에 자신의 생일을 정하고 싶어 합니다. 물론, 그는 동료들과 생일을 공유하고 싶지 않습니다.Bobby가 가능한 한 특별하게 느낄 수 있도록 가짜 생일을 만들어 줄 수 있나요?..
· [백준]/C++
https://www.acmicpc.net/problem/4040#한국어 번역문제"Hey, John, John Conway의 Game of Life 알아?""직사각형 격자에 살아있는 셀과 죽은 셀이 있고, 모든 셀이 동시에 정해진 시계 틱에 따라 다음 세대의 셀 상태로 업데이트되는 그 게임 말하는 거지? 죽은 셀이 정확히 세 개의 살아있는 이웃을 가질 때 다음 세대에 살아있게 되고, 살아있는 셀이 이웃이 두 개 미만 또는 세 개 초과일 때 다음 세대에 죽게 되며, 다른 셀들은 상태가 변하지 않는 그 게임 말하는 거야?""응, 맞아. 내가 그걸 프로그래밍하려고 애쓰고 있는데...""대수롭지 않게 – 누구나 했잖아!""잠깐만, 내가 끝내게 – 극좌표 그래프 용지에서 작동하도록 프로그래밍하려고 해, 이렇게:"..
경우42
'[백준]' 카테고리의 글 목록 (4 Page)