[programmers] ๋ ์์ ํฉ - Java
๋ ๊ฐ์ ๋ฌธ์์ด ํํ์ ์ ์ 'a'์ 'b'๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ค์ ํฉ์ ๋ฌธ์์ด๋ก ๋ฐํํ๋ solution ํจ์๋ฅผ ์์ฑํ๋ ๋ฌธ์ ์
๋๋ค. 'a'์ 'b'์ ๊ธธ์ด๋ ๊ฐ๊ฐ 1 ์ด์ 100,000 ์ดํ์ด๋ฉฐ, ์ซ์๋ก๋ง ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. 'a'์ 'b'๋ 0์ด ์๋๋ฉด 0์ผ๋ก ์์ํ์ง ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Java์ BigDecimal ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ซ์๋ฅผ ์ ๋ฐํ๊ฒ ๊ณ์ฐํ์ต๋๋ค. ์ด ํด๋์ค์ ๋จ์ ์ ๋๋ฆฐ ์๋์ ๊ธฐ๋ณธ ํ์
๋ณด๋ค ๋ถํธํ ์ฌ์ฉ๋ฒ์
๋๋ค.
Jan 20, 2024
๋ฌธ์ ์ค๋ช
0 ์ด์์ ๋ ์ ์๊ฐ ๋ฌธ์์ด
a
, b
๋ก ์ฃผ์ด์ง ๋, a
+ b
์ ๊ฐ์ ๋ฌธ์์ด๋ก return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.์ ํ์ฌํญ
- 1 โค
a
์ ๊ธธ์ด โค 100,000
- 1 โค
b
์ ๊ธธ์ด โค 100,000
a
์b
๋ ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
a
์b
๋ ์ ์ 0์ด ์๋๋ผ๋ฉด 0์ผ๋ก ์์ํ์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
a | b | result |
"582" | "734" | "1316" |
"18446744073709551615" | "287346502836570928366" | "305793246910280479981" |
"0" | "0" | "0" |
์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
- ์์ 1๋ฒ์
a
,b
๋ ๊ฐ๊ฐ 582, 734์ด๊ณ 582 + 734 = 1316์ ๋๋ค. ๋ฐ๋ผ์ "1316"์ return ํฉ๋๋ค.
์
์ถ๋ ฅ ์ #2
- ์์ 2๋ฒ์
a
,b
๋ ๊ฐ๊ฐ 18446744073709551615, 287346502836570928366์ด๊ณ 18446744073709551615 + 287346502836570928366 = 305793246910280479981์ ๋๋ค. ๋ฐ๋ผ์ "305793246910280479981"์ return ํฉ๋๋ค.
์
์ถ๋ ฅ ์ #3
- ์์ 3๋ฒ์
a
,b
๋ ๊ฐ๊ฐ 0, 0์ด๊ณ 0 + 0 = 0์ ๋๋ค. ๋ฐ๋ผ์ "0"์ return ํฉ๋๋ค.
solution.java
import java.math.*; class Solution { public String solution(String a, String b) { BigDecimal x = new BigDecimal(a); BigDecimal y = new BigDecimal(b); return "" + x.add(y); } }
ํต์ฌ ํค์๋
- ์์ 1๋ฒ ๊ฐ์ ๊ฒฝ์ฐ int๋ long์ผ๋ก ํํํ ์ ์๋ ๋ฒ์ ๋ด์ ๊ฐ์ด๋ฏ๋ก ์ผ๋ฐ์ ์ธ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
- ํ์ง๋ง ์์ 2๋ฒ ๊ฐ์ ๊ฒฝ์ฐ long์ผ๋ก ํํํ ์ ์๋ ๊ฐ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ค.
- ๋ฐ๋ผ์ Java์์ ์ ๊ณตํ๋ BigDecimal ํด๋์ค๋ฅผ ํตํด ์ซ์๋ฅผ ์ ๋ฐํ๊ฒ ๊ณ์ฐํด์ผ ํ๋ค.
- BigDecimal์ ๋จ์ ์ ๋๋ฆฐ ์๋, ๊ธฐ๋ณธ ํ์ ๋ณด๋ค ๋ถํธํ ์ฌ์ฉ๋ฒ์ด๋ค.
๊ฒฐ๋ก !
ํด๋น ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ฐ ํํํ ์ ์๋ ๊ฐ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ์์ ๊ณ์ฐ์ ์ด๋ ค์์ ๊ฒช์๊ณ , ์ด๋ฅผ BigDecimal ํด๋์ค๋ฅผ ํตํด ํด๊ฒฐํ ์ ์์๋ค.
Share article