확장된 유클리드 알고리즘
문제 세 양의 정수 a,b,c가 입력으로 들어온다. 이 때, ax +by = c를 만족하는 정수 x,y를 찾되, |x| + |y|가 최소가 되는 x,y를 찾아라. 입력 첫째 줄에는 테스트 횟수를 나타내는 T가 들어온다. 다음 줄 부터 한 줄에 세 정수 a,b,c (0 < a,b,c, < 10^8 -1)가 순서대로 주어진다. 출력 |x| + |y|가 최소가 되는 일반해를 출력하라. 찾을 수 없다면 -1을 출력하라. 솔루션 아직 확장된 유클리드 알고리즘에 대해서 이해가 깊지 않지만, 먼저 각각의 입력을 받고, 서로소로 만들어준다. 확장된 유클리드 알고리즘으로 s1,t1을 구한다. 그리고 구해진 gcd로 c를 나눴을 때, 나머지가 있다면, 해가 존재하지 않는다. 나눠진다면, 그 몫을 s1,t1에 곱해준다. (..
C++[백준]1996번 지뢰 찾기
https://www.acmicpc.net/problem/1996 1996번: 지뢰 찾기 첫째 줄에 N(1 ≤ N ≤ 1,000)이 주어진다. 다음 N개의 줄에는 지뢰 찾기 map에 대한 정보가 주어지는데 '.' 또는 숫자로 이루어진 문자열이 들어온다. '.'는 지뢰가 없는 것이고 숫자는 지뢰가 있는 경 www.acmicpc.net 솔루션 입력으로 들어오는 문자열을 따로 저장해 두고, 2중 for문을 돌면서 8방위에 '.'이 아닌 것이 있다면 무조건 숫자이기 때문에, 숫자로 변환해주어 더해준다. 8방위로 탐색을 할 때는 int dx[8] = { 1,0,-1,0,1,-1,1,-1 }; int dy[8] = { 0,1,0,-1,1,-1,-1,1 }; 각각의 방향을 배열에 저장해 두고 for문을 돌면 더욱 간..