백준 - 1252 이진수 덧셈
백준 1252 이진수 덧셈
문제 : https://www.acmicpc.net/problem/1252
radix로 풀면 런타임 에러가 떠서 직접 구현해서 풀었다.
Swift :
import Foundation
let input = readLine()!.split(separator: " ").map{String($0)}
print(addBinary(input[0], input[1]))
func addBinary(_ A: String, _ B: String) -> String {
var res = ""
let a = Array(A)
let b = Array(B)
var indexA = a.count - 1
var indexB = b.count - 1
var carry = 0
while indexA >= 0 || indexB >= 0 || carry > 0 {
var sum = carry
if indexA >= 0{
sum += Int(String(a[indexA]))!
indexA -= 1
}
if indexB >= 0{
sum += Int(String(b[indexB]))!
indexB -= 1
}
res = "\(sum%2)"+res
carry = sum/2
}
let s = res.firstIndex(of: "1")
res = res.substring(from: (s ?? res.lastIndex(of: "0"))!)
return res
}
Author And Source
이 문제에 관하여(백준 - 1252 이진수 덧셈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@baekteun/백준-1252저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)