백준 - 두 수의 합 (3273)

Seoyoung Lee·2023년 3월 18일
0

알고리즘

목록 보기
95/104
post-thumbnail
var arr = Array(repeating: 0, count: 1000001)
var answer = 0

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

for num in input {
    let pair = x - num
    if pair <= 0 || pair > 1000000 {
        continue
    }
    if arr[pair] > 0 { // aj 존재
        answer += 1
        arr[pair] -= 1
    } else {
        arr[num] += 1
    }
}

print(answer)
  • 숫자의 존재 여부를 저장하는 arr 배열의 크기를 2000001으로 두면 x - num 이 1000000보다 큰 경우 예외처리를 하지 않아도 된다.
profile
나의 내일은 파래 🐳

0개의 댓글