본문 바로가기
알고리즘/leetcode

[leetcode/JS] 234. Palindrome Linked List / Javascript

by 질서정연_ 2022. 8. 25.

 

문제링크 

 

Palindrome Linked List - 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

 
 
 
 

기억하면 좋을 것 

배열의 순서를 정반대로 뒤바꾸고 싶을때 어떻게 할까 ?

바로 reverse 배열 내장 함수를 사용하면 된다. 

그런데 문자열을 정반대로 바꾸어 주고 싶다면 ?

 

  • split()
  • reverse()
  • join()

세가지를 기억하자

split('') 은 문자열을 잘라 새로운 배열을 반환한다.reverse()는 배열의 순서를 역순으로 만든다. (배열 반환)join('') 은 배열을 문자열로 만든다.(문자열 반환) 

 

그렇기 때문에 기존문자열.split('').reverse().join() 을 해 주면 기존 문자열이 배열이 되었다가, 역순으로 바뀌고 다시 문자열이 되게 된다. 이렇게 하면 내가 원하는 결과를 얻을 수 있다.

 

split().reverse().join() 의 속도는 어떨까? 

 

https://jsbench.me/4bkfflcm2z
 

JSBench.me - JavaScript performance benchmarking playground

 

jsbench.me

 

구글링 해 보니 다른 방법들에 비해 그렇게 빠르진 않은 것 같다 

한줄에 해결되는건 깔끔하고 좋아보인다 

문자열을 reverse 해 줄 때

for of 로 돌면서 
function reverseString2(str) {
  let reversed = '';
  for (const character of str) {
    reversed = character + reversed
  }
  return reversed
}

 이렇게 해 줄 수도 있구나..  이건 보기 쉽고 속도도 괜찮은 방법 같다 

 

소감

확실히 욕심을 버리고 easy로 기초를 다지자고 생각하니 마음도 편하고 기분도 좋다 ! 

오늘처럼만 남들 잘 하는거 신경쓰지말고 나에게만 집중하고 싶다. 

 

해결 코드

 
 
 

Submission Detail

 

댓글