Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Service
- IAM
- IAC
- ebs
- POD
- Kubernetes
- docker
- leetcode
- EC2
- asgi
- kernel
- AWS
- 쿠버네티스
- EKS
- intervals
- terraform
- Python
- asyncio
- YAML
- WSGI
- github
- FastAPI
- Django
- dockerfile
- K8S
- 자바스크립트
- event loop
- ansible
- Deployment
- elasticsearch
Archives
- Today
- Total
궁금한게 많은 개발자 노트
[ leetcode ] 445. Add Two Numbers II 본문
해당 문제는 두 Linked List가 주어지고, 각 링크드 리스트의 노드는 숫자를 나타내고 있으며 각 숫자는 head 부터 tail까지 한 숫자의 각 자릿수를 나타냅니다.
두 링크드 리스트의 숫자를 더한 결과의 링크드 리스트를 반환하는 문제입니다.
일반적으로 두 수의 덧셈은 가장 아랫자리부터 덧셈이 이루어지므로 stack에 각 링크드 리스트의 숫자를 넣어 가장 아랫자리부터 나올 수 있도록 준비하고 덧셈의 결과 값도 마찬가지로 stack에 넣어 링크드 리스트로 하나씩 빼내며 만들 수 있습니다.
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
#include <stack>
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
stack<int> one, two, answer;
while (l1) one.push(l1->val), l1 = l1->next;
while (l2) two.push(l2->val), l2 = l2->next;
int carry = 0;
while (!one.empty() || !two.empty()) {
int num1 = one.empty() ? 0 : one.top();
if (!one.empty()) one.pop();
int num2 = two.empty() ? 0 : two.top();
if (!two.empty()) two.pop();
int sum = carry + num1 + num2;
carry = sum / 10;
answer.push(sum % 10);
}
if (carry) answer.push(carry);
ListNode* head = new ListNode(answer.top());
answer.pop();
ListNode* temp = head;
while (!answer.empty()) {
temp->next = new ListNode(answer.top());
temp = temp->next;
answer.pop();
}
return head;
}
};
'Algorithm' 카테고리의 다른 글
[ leetcode ] 146. LRU Cache (0) | 2023.07.19 |
---|---|
[ leetcode ] 128. Longest Consecutive Sequence (0) | 2023.07.19 |
[ leetcode ] 334. Increasing Triplet Subsequence (0) | 2023.07.17 |
[ leetcode ] 1218. Longest Arithmetic Subsequence of Given Difference (0) | 2023.07.14 |
[ leetcode ] 198. House Robber (0) | 2023.07.14 |
Comments