개발조각

[리트코드] 9. Palindrome Number 본문

알고리즘🅰/리트코드

[리트코드] 9. Palindrome Number

개발조각 2022. 9. 9. 22:31
728x90
반응형

안녕하세요. 개발조각 입니다.😊

이번에 9. Palindrome Number를 풀어보았습니다.

 

리트코드의 장점이 런타임, 메모리가 수치로 나오고

그래프로 내가 작성한 코드가 어디인지 알려줍니다.

그래서 프로그래머스에서 문제 풀 때는 내장 함수 쓰고 빨리 풀고 넘겨야지~ 이랬는데

리트코드는 엇... 런타임이 너무 애바인데;;;; 하면서 다른 방법으로 풀어야겠다.

이렇게 되더라고요ㅋㅋㅋ

 

그럼 해결방안에 대해 설명하겠습니다.


https://leetcode.com/problems/palindrome-number/submissions/

 

Palindrome Number - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


두가지 방법으로 풀어보았는데요.

하나는 내장함수를 써서 짧게 구하는 방법이고

다른 방법은 for문을 사용해서 런타임을 신경 쓴 방법입니다.

 

1. 내장함수 사용

var isPalindrome = function(x) {
    let reverseNum = String(x).split('').reverse().join('');
    return String(x) === reverseNum ? true : false;
};

 

Input: x = 121

String()  : '121'

split('') : ['1', '2', '1']

reverse() : ['1', '2', '1']

join('') : '121'

 

마지막으로 삼항연산자로 써주어서 true, false를 반환해주었습니다.

'121' === '121' : true

 

짧아서 좋지만 효율이 꽝이라 다른 방법으로도 풀어보았습니다.

 

2. for문 사용

var isPalindrome = function(x) {
    let str = String(x);
    let reverseStr = '';
    
    for(let i=str.length-1; i >= 0; i--) reverseStr += str[i];
    return str === reverseStr ? true : false;
};

먼저 숫자x를 문자열로 바꿔주고

for문으로 마지막부터 돌려 문자열로 이어붙이는 방식으로 풀었습니다.

 

728x90
반응형
Comments