๋ฌธ์ ํ์
๋น์ด์์ง ์์ ๋๊ฐ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๊ฐ ์ฃผ์ด์ง๋ค.
์์๊ฐ ์๋ ์ ์์ ์ซ์๋ฅผ ์ญ์์ผ๋ก ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ณด๊ด๋์ด์๋ค.
ex.342
์ธ ๊ฒฝ์ฐ ์ฐ๊ฒฐ๋ฆฌ์คํธ์[2] -> [4] -> [3]
์ผ๋ก ๊ตฌ์ฑ
์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ํํ๋๋ ๋ ์ ์์ ํฉ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๋ฐํํด์ผํ๋ค.
ํ์ด
1๏ธโฃ
๐ก ๋ ์ค๋ฅธ Ideal1
์val
๊ณผl2
์val
์ ๋ํ๊ณ 10์ผ๋ก ๋๋ ๋ชซ๊ณผ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ค.
10์ผ๋ก ๋๋ ๋ชซ์ ๋ค์ ๋ ธ๋๋ค์val
ํฉ์ ๋ํด์ฃผ์ด์ผ ํ๋ค.
๋๋จธ์ง๋ฅผ ํตํด ๋ ธ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด ์ด์ ๋ ธ๋์next
๋ ธ๋๋ก ์ฐ๊ฒฐํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ,l1
๊ณผl2
์ ๊ธธ์ด๊ฐ ๋ค๋ฅผ ์ ์๋ค.
๋ฐ๋ผ์,l1
๊ณผl2
๊ฐ ๋๋คnull
์ด ์๋๋ผ๋ฉด ๋ก์ง์ ๊ณ์ ์ํํด์ผํ๋ค.
๋ํ, ๋ชซ์ผ๋ก ๋์ด์จ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๋ ธ๋๋ฅผ ์ถ๊ฐ๋ก ์์ฑํด์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ๋ ์กฐ๊ฑด๋ฌธ์ ์ถ๊ฐํ๋ค.
์ ์์ด๋์ด๋ฅผ ๋ฐํ์ผ๋ก ์ฝ๋๋ฅผ ๊ตฌํํ์๋ค.
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int q = 0;
int r = 0;
ListNode start = new ListNode();
ListNode node = start;
while (l1 != null || l2 != null || q != 0) {
int sum = q;
if (l1 != null) {
sum += l1.val;
l1 = l1.next;
}
if (l2 != null) {
sum += l2.val;
l2 = l2.next;
}
q = sum / 10;
r = sum % 10;
node.next = new ListNode(r);
node = node.next;
}
return start.next;
}
}
๊ฒฐ๊ณผ
๐ ํ๊ณ
์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ์ ์ผ๋ก ํ์ฉํ ์ ์ ๋ง์์ง๋ง, ์ด๋ฐ์์ผ๋ก ๋ ธ๋ ํด๋์ค๊ฐ ์ฃผ์ด์ง๊ณ
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์ ๊ฑฐ์ ์์ด์, ์๊ฐ๋ณด๋ค ์ค๋ ๊ณ ๋ฏผํ๊ฒ ๋์๋ค.
์ด๋ฒ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์, ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์๋ฆฌ์ ๋ํด ๋์ฑ ๊น์ํ ๊ณ ๋ฏผํ๊ฒ ๋์ด ์ข์ ๋ฌธ์ ์๋ค๊ณ ์๊ฐ์ด ๋ ๋ค.