-
[LeetCode] 2. Add Two Numbers(Java)Problem Solving/LeetCode 2021. 9. 4. 02:17
https://leetcode.com/problems/add-two-numbers/
링크드리스트를 쓰길래 아주아주아주아주 오랜만에 자바로 문제를 풀어봤다 ^^
이왕 하는김에 vscode에 java 개발 환경 구축도 하고 .. 재밋다ㅠ
백준 프로그래머스는 코테 연습용으로 푸는 마음가짐이라면 릿코드는 취미의 영역이 될 것 같다
백준에서의 큰 수 더하기 문제와 같은 문제 !!
최대 100자리 숫자가 주어지기 때문에 Numeric Data Type으로는 구할 수 없고, 누산기 개념을 이용해 구해줘야 한다
각각 자리의 숫자를 더하고, carry bit을 넘겨줘서 구현했당
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { int carry = 0; ListNode node = new ListNode(); ListNode head = node; while(l1!=null || l2!=null){ int sum=carry; if(l1!=null){ sum+=l1.val; l1=l1.next; } if(l2!=null){ sum+=l2.val; l2=l2.next; } carry = (sum>=10)?1:0; node.next = new ListNode((sum%10)); node=node.next; } if(carry!=0){ node.next=new ListNode(carry); } return head.next; } }
'Problem Solving > LeetCode' 카테고리의 다른 글
[LeetCode] 7. Reverse Integer(Python) (400) 2021.08.27