Where who wants to meet someone

백준 Swift [19532] 수학은 비대면강의입니다 본문

백준 알고리즘 문제 기록/브루트 포스

백준 Swift [19532] 수학은 비대면강의입니다

Lust3r 2023. 7. 6. 14:15
728x90

난이도

브론즈 II

 

문제

https://www.acmicpc.net/problem/19532

 

19532번: 수학은 비대면강의입니다

정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $-

www.acmicpc.net

 

내 답안

let input = readLine()!.split(separator: " ").map { Int($0)! }

let a = input[0]
let b = input[1]
let c = input[2]
let d = input[3]
let e = input[4]
let f = input[5]

for x in 0...999 {
    for y in 0...999 {
        if a * x + b * y == c && d * x + e * y == f {
            print(x, y)
        } else if a * -x + b * y == c && d * -x + e * y == f {
            print(-x, y)
        } else if a * x + b * -y == c && d * x + e * -y == f {
            print(x, -y)
        } else if a * -x + b * -y == c && d * -x + e * -y == f {
            print(-x, -y)
        }
    }
}

- 나올 수 있는 경우의 수는 다음의 4가지라고 생각했다.

1. x, y가 둘 다 양수

2. x는 음수, y는 양수

3. x는 양수, y는 음수

4. x, y가 둘 다 음수

 

그래서 x의 각 값마다 y를 for문으로 돌려보면서 4가지의 케이스를 체크하는 식으로 문제를 풀게 되었다.

'백준 알고리즘 문제 기록 > 브루트 포스' 카테고리의 다른 글

백준 Swift [2231] 분해합  (0) 2023.07.04
백준 Swift [2798] 블랙잭  (0) 2023.07.03