반응형
https://leetcode.com/problems/add-two-numbers/
1. 2022/05/06 시도
소요시간: 5분
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode current = new ListNode();
ListNode head = current;
int add = 0;
while (l1 != null || l2 != null) {
int lv1 = l1 == null ? 0 : l1.val;
int lv2 = l2 == null ? 0 : l2.val;
int sum = lv1+lv2 + add;
add = sum / 10;
current.next = new ListNode(sum % 10);
current = current.next;
l1 = l1 == null ? null: l1.next;
l2 = l2 == null ? null: l2.next;
}
if ( add > 0) {
current.next = new ListNode(add);
}
return head.next;
}
}
풀이 접근 과정
더미 노드(current)를 만들고 그 다음을 계속 연결해주도록 한다.
head로 더미노드의 첫번째를 기억해두어 나중에 리턴할 때 요긴하게 써먹는다.
두 노드를 차례대로 읽어들으면서 덧셈을 해주고
add에는 올림되는 숫자를 기록한다.
마지막에 올림이 있을 수 있으니 올림을 확인하고 있다면 노드를 추가해준다.
느낀점
- 이번 문제의 핵심은 한번에 푸느냐인것 같다. 안타깝게도 나도 한번에 풀지 못했다. edge케이스를 잘 생각해서 푸는 연습이 필요하다.
알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(708. Insert into a Sorted Circular Linked List) (0) | 2022.05.07 |
---|---|
.leetcode(430. Flatten a Multilevel Doubly Linked List) (0) | 2022.05.07 |
.leetcode(21. Merge Two Sorted Lists) (1) | 2022.05.06 |
.leetcode(707. Design Linked List) (0) | 2022.05.05 |
.leetcode(234. Palindrome Linked List) (0) | 2022.05.02 |