Where who wants to meet someone

백준 Swift [3009] 네 번째 점 본문

백준 알고리즘 문제 기록/기하: 직사각형과 삼각형

백준 Swift [3009] 네 번째 점

Lust3r 2023. 7. 2. 16:23
728x90

난이도

브론즈 III

 

문제

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

 

3009번: 네 번째 점

세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.

www.acmicpc.net

 

내 답안

// 직사각형을 만들려면 필요한 네 점은 (x, y) (x, y2), (x2, y) (x2, y2)
var x: [Int: Int] = [:]
var y: [Int: Int] = [:]

for _ in 1...3 {
    let input = readLine()!.split(separator: " ").map { Int($0)! }

    x[input[0]] = x[input[0]] == nil ? 1 : x[input[0]]! + 1
    y[input[1]] = y[input[1]] == nil ? 1 : y[input[1]]! + 1
}

print(x.filter{ $0.value == 1 }.keys.first!, y.filter{ $0.value == 1 }.keys.first!)

- 4개의 점으로 직사각형을 만든다면 x와 y값으로 나누어 봤을 때 각각 하나씩만 나오는 숫자가 있을텐데 그 숫자의 조합이 필요한 점이라 생각했다.

- 조금 더 간단한 방법이 있겠지만 이 방법으로 하여 각 입력값을 dictionary에 담고, 그 중 value가 1인 키의 값을 출력하도록 했다.