250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(Leet Code JS)Add Strings 본문
728x90
반응형
https://leetcode.com/problems/add-strings/
문자열로 이뤄진 두 수를 더한 값을 문자열로 다시 리턴하면 된다.
각 자리수를 number형으로 바꾸고 더한 값을 answer 배열에 push하는 과정이다.
먼저 두 수의 자릿수를 맞춘다.
num1과 num2의 길이를 비교하여 더 작은 길이를 num1으로 바꿔준다.
이후 num1은 num2의 길이만큼 0을 앞에 붙여준다.
다음은 각 자릿수를 뒤에서부터 접근하여 number 형으로 바꾼다.
sum = up + (+num1[i]) + (+num2[i])
num1과 num2 앞에 +를 붙이면 string -> number로 변한다.
만약 sum이 10 이상이라면 올림수(up)는 1이 되고, answer에는 sum - 10을 넣어준다.
10 미만이라면 올림수는 0, answer에는 sum을 넣어준다.
모든 for문이 끝나면 up이 남아있는지 확인하여
남아있다면 추가로 1을 answer에 push.
리턴값은 answer을 뒤집어(reverse) join하여 나온 문자열이다.
/**
* @param {string} num1
* @param {string} num2
* @return {string}
*/
var addStrings = function(num1, num2) {
let sum = 0;
let up = 0;
let answer = [];
if(num1.length > num2.length){
[num1, num2] = [num2, num1];
}
for(let i = num1.length; i < num2.length; i++){
num1 = "0" + num1;
}
for(let i = num2.length - 1; i >= 0; i--){
sum = up + (+num1[i]) + (+num2[i]);
if(sum >= 10){
up = 1;
answer.push(sum - 10);
} else{
up = 0;
answer.push(sum);
}
}
if(up){
answer.push("1");
}
return answer.reverse().join("");
};
728x90
반응형
'Leet Code 알고리즘' 카테고리의 다른 글
(Leet Code JS)Find All Numbers Disappeared in an Array (0) | 2022.05.13 |
---|---|
(Leet Code JS)Arranging Coins (0) | 2022.05.13 |
(Leet Code JS)Third Maximum Number (0) | 2022.05.13 |
(Leet Code JS)Longest Consecutive Sequence (0) | 2022.05.09 |
(Leet Code JS)Flatten a Multilevel Doubled Linked List (0) | 2022.04.12 |