-
[백준] 21568번 : Ax+By=C C++ 문제풀이 솔루션
문제A, B, C가 주어졌을 때, Ax+By=C를 만족하는 (x, y)중에서 다음을 만족하는 것을 아무거나 찾아보자.x, y는 정수-1,000,000,000 ≤ x, y ≤ 1,000,000,000입력첫째 줄에 정수 A, B, C가 주어진다.출력Ax+By=C를 만족하는 x, y를 공백으로 구분해 출력한다. 문제의 조건을 만족하는 (x, y)가 존재하지 않는 경우에는 -1을 출력한다.제한-1,000,000 ≤ A, B, C ≤ 1,000,000A, B ≠ 0 확장 유클리드 호제법을 사용하는 문제입니다.ax+by=c 를 ax+by=1로 놓겠습니다.c가 a와 b의 배수인 경우에만 방정식의 해를 가집니다.최대 공약수를 구할 때 처럼 유클리드 호제법을 반복 사용합니다. 이때 몫을 기록합니다.반복으로 구한 몫을 ..
Algorithm/C++
2024. 7. 19.
-
[백준] 1744번 : 수 묶기 C++ 문제풀이 솔루션
문제길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 상관없이 묶을 수 있다. 하지만, 같은 위치에 있는 수(자기 자신)를 묶는 것은 불가능하다. 그리고 어떤 수를 묶게 되면, 수열의 합을 구할 때 묶은 수는 서로 곱한 후에 더한다.예를 들면, 어떤 수열이 {0, 1, 2, 4, 3, 5}일 때, 그냥 이 수열의 합을 구하면 0+1+2+4+3+5 = 15이다. 하지만, 2와 3을 묶고, 4와 5를 묶게 되면, 0+1+(2*3)+(4*5) = 27이 되어 최대가 된다.수열의 모든 수는 단 한번만 묶거나, 아니면 묶지 않아야한다.수열이 주어졌을 때, 수열의 각 ..
Algorithm/C++
2024. 7. 2.
💲 추천 글