๐ Problem Solution
[Swift] Baekjoon ํฐ ์ A + B 10757๋ฒ
Fomagran ๐ป
2022. 1. 6. 18:18
728x90
๋ฐ์ํ
Problem
10757๋ฒ: ํฐ ์ A+B
๋ ์ ์ A์ B๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์, A+B๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
www.acmicpc.net
Solution
1. ๋ฌธ์๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ๊ณต๋ฐฑ ๊ธฐ์ค์ผ๋ก ๋๋๋ค.
let line = readLine() ?? ""
let lineArr = line.split(separator: " ").map{String($0)}
2. ๋ ๋ฌธ์๋ฅผ Array๋ก ๋ง๋ค๊ณ ๋ค์ง์ด์ค๋ค.
var A = Array(lineArr[0].map{String($0)}.reversed())
var B = Array(lineArr[1].map{String($0)}.reversed())
3. ๋ ๊ธด ๋ฌธ์๊ฐ ์๋ค๋ฉด ๋ค์ ์ฐจ์ด๋งํผ 0์ ์ถ๊ฐํด์ค๋ค.
var isALong = A.count > B.count
let addZero = Array(repeating: "0", count: abs(A.count-B.count))
A = isALong ? A : A + addZero
B = isALong ? B + addZero : B
4. for๋ฌธ์ผ๋ก ๋์์๋ถํฐ ๋ ์ซ์๋ฅผ ๋ํด์ค๋ค.
๋ง์ฝ ๋ํ ์ซ์๊ฐ 10์ ๋๋๋ค๋ฉด one์ ์ ์ฅํ์ฌ ๋ค์ ์ซ์๋ฅผ ๋ํ ๋ ๋ํด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ๋ง์ง๋ง ์ซ์๋ 10์ผ๋ก ๋๋ ๊ฒ์ด ์๋ ๊ทธ๋๋ก ๋ฃ์ด์ค๋๋ค.
var one = 0
var answer:[String] = []
let count = isALong ? A.count : B.count
for i in 0..<count {
let sum = Int(A[i])! + Int(B[i])! + one
one = sum/10
if i == count - 1 {
answer.append(String(sum))
}else {
answer.append(String(sum%10))
}
}
5. ์ ๋ต์ ๋ค์ง๊ณ ๋ฌธ์๋ก ๋ง๋ค์ด ์ถ๋ ฅํ๋ค.
print(Array(answer.reversed()).joined())
Source Code
P.S
์ค๋๋ง์ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํ์๋ค.
'๊ฐ๋ณ๊ฒ ๋ธ๋ก ์ฆ 5๋ ํ์ด๋ณผ๊น?' ๋ผ๋ ๋ง์ธ๋๋ก ํ์๋๋ฐ ์... ์๊ฐ๋ณด๋ค ์ด๋ ค์ ๋ค...
๋ญ๊ฐ ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์ ๊ฐ ์ํ๋ ๊ฒ๊ณผ ๋ฐฑ์ค์ด ์ํ๋ ๊ฒ์ด ์ข ๋ค๋ฅธ ๊ฒ ๊ฐ๋ค...
728x90
๋ฐ์ํ