본 내용은 '이것이 취업을 위한 코딩테스트다 with 파이썬' 책을 기반으로 포스팅 하였습니다.
문제
저작권 문제가 될 수 있어 문제는 삭제합니다.
풀이 코드
// 입력 예시
// 5
// 8 3 7 9 2
// 3
// 5 7 9
import Foundation
let n = Int(readLine()!)!
let componentArr = readLine()!.split(separator: " ").map({Int(String($0))!}).sorted()
let m = Int(readLine()!)!
let targetArr = readLine()!.split(separator: " ").map({Int(String($0))!})
var resultArr = [String]()
for i in 0..<m {
let target = targetArr[i]
var start = 0
var end = componentArr.count - 1
while true {
if start > end {
resultArr.append("no")
break
}
let mid = Int(floor((Double(start) + Double(end)) / 2))
if componentArr[mid] == target {
resultArr.append("yes")
break
} else if componentArr[mid] > target {
end = mid - 1
} else {
start = mid + 1
}
}
}
print(resultArr) // ["no", "yes", "yes"]'Algorithm > 이코테 문제풀이' 카테고리의 다른 글
| 다이나믹 프로그래밍 - 1로 만들기(Swift) (0) | 2022.08.09 |
|---|---|
| 이진 탐색 - 떡볶이 떡 만들기(Swift) (0) | 2022.08.09 |
| 정렬 - 두 배열의 원소 교체(Swift) (0) | 2022.08.09 |
| 정렬 - 성적이 낮은 순서로 학생 출력하기(Swift) (0) | 2022.08.09 |
| 정렬 - 위에서 아래로(Swift) (0) | 2022.08.09 |