반응형
728x90
반응형
문제
https://leetcode.com/problems/add-two-numbers/
풀이코드
package Medium;
/**
* https://leetcode.com/problems/add-two-numbers/
*/
public class M001_addTwoNumbers_SUCCESS {
ListNode resultNode = new ListNode();
public static void main(String[] args) {
M001_addTwoNumbers_SUCCESS solution = new M001_addTwoNumbers_SUCCESS();
ListNode listNode1 = new ListNode();
listNode1.val = 2;
listNode1.next = new ListNode();
listNode1.next.val = 4;
listNode1.next.next = new ListNode();
listNode1.next.next. val = 3;
ListNode listNode2 = new ListNode();
listNode2.val = 5;
listNode2.next = new ListNode();
listNode2.next.val = 6;
listNode2.next.next = new ListNode();
listNode2.next.next.val = 4;
solution.addTwoNumbers(listNode1, listNode2);
}
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode answer = new ListNode();
ListNode node = answer;
int quot = 0;
while (l1 != null || l2 != null) {
int sum = quot;
if (l1 != null) {
sum += l1.val;
l1 = l1.next;
}
if (l2 != null) {
sum += l2.val;
l2 = l2.next;
}
quot = sum / 10; /* 10으로 나눈 몫이 다음 덧셈때 더해질 값 */
sum %= 10; /* 나머지가 현재의 sum */
ListNode temp = new ListNode(sum);
node.next = temp; /* node.next 설정하면 같은 주소인 answer.next 도 동일하게 변경 */
node = node.next; /* node 엔 다음 노드를 저장시킨다 / 다음 노드를 가르켜야하는 노드가 필요했으므로 node 를 처음에 2개 생성 */
}
/* 마지막 덧셈 결과에서도 quot 가 나올 시 처리 */
if (quot > 0) {
ListNode temp = new ListNode(quot);
node.next = temp;
}
return answer.next;
}
}
반응형
'Algorithm > Problem Solving' 카테고리의 다른 글
[leetcode] Medium-5번. Longest_Palindromic_Substring 문제풀이 (0) | 2021.10.19 |
---|---|
[leetcode] Medium-3번. longest-substring-without-repeating-characters 문제풀이 (0) | 2021.10.18 |
[Baekjoon 16198번] 에너지 모으기 문제 (with 자바) (0) | 2021.10.10 |
[프로그래머스] Level3 12936번: 줄 서는 방법 (JAVA) (0) | 2021.10.08 |
[Baekjoon 15658번] 연산자 끼워넣기(2) 문제 (with 자바) (0) | 2021.10.01 |