3가지 좌표가 주어졌을 때
나머지 1가지 좌표를 구해라
import Foundation
let v = [[1, 4], [3, 4], [3, 10]]
var answer = [0, 0]
for i in 0..<2 {
if v[0][0] == v[1][i] {
answer[i] = v[2][i]
} else if v[0][i] == v[2][i] {
answer[i] = v[1][i]
} else if v[1][i] == v[2][i] {
answer[i] = v[0][i]
}
}
print(answer) //[1, 2]
XOR 연산 활용하기
같으면 false,다르면 true
세 값을 XOR 연산 했을 때 같으면 0으로 변환(리셋되는 효과가 나타나고)되어 다른 값만 남게 되는 것을 활용하는 것이다
같으면 같은 값을 다르면 다른 값을 반환한다
import Foundation
let v = [[1, 4], [3, 4], [3, 10]]
var answer = [0, 0]
for i in 0..<2 {
answer[i] = v[0][i] ^ v[1][i] ^ v[2][i]
}
print(answer) //[1, 10]
numbers라는 int형 배열이 있다
해당 배열에 들어있는 숫자들은 오직 한 숫자를 제외하고는 모두 두 번씩 들어있다
오직 한 번만 등장하는 숫자를 찾는 코드를 작성하라
let numbers = [1, 2, 1, 2, 3, 4, 3, 4, 5]
// XOR는 같으면 0, 다르면 1
print(5^5) //0
print(5^0) //5
// 101
// 000
// ---
// 101
var result = 0
for i in numbers {
result ^= i
}
print(result)