[리트코드] 336. Palindrome Pairs / Javascript

2021. 9. 15. 16:24·LeetCode
반응형

문제주소 : https://leetcode.com/problems/palindrome-pairs/

 

Palindrome Pairs - 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


<문제 설명>

더보기

Given a list of unique words, return all the pairs of the distinct indices (i, j) in the given list, so that the concatenation of the two words words[i] + words[j] is a palindrome.

 

Example 1:

Input: words = ["abcd","dcba","lls","s","sssll"] Output: [[0,1],[1,0],[3,2],[2,4]] Explanation: The palindromes are ["dcbaabcd","abcddcba","slls","llssssll"]

Example 2:

Input: words = ["bat","tab","cat"] Output: [[0,1],[1,0]] Explanation: The palindromes are ["battab","tabbat"]

Example 3:

Input: words = ["a",""] Output: [[0,1],[1,0]]

 

Constraints:

  • 1 <= words.length <= 5000
  • 0 <= words[i].length <= 300
  • words[i] consists of lower-case English letters.

 

<풀이법>

▒ 한줄 개념: 문자열 합친 후 비교 ▒ 

Hard 난이도로 분류되어 있는데, 단순하게 풀어도 해결되는 문제입니다. 

Trie 알고리즘이 정석인 듯 하네요.

저는 단순하게 두 단어끼리 합친 뒤에, 해당 단어가 펠린드롬인지 확인하는 방식으로 풀었습니다.

이후에 다시 풀어봐야할 문제인 것 같습니다.

 

 

<코드(Javascript)>

/**
 * @param {string[]} words
 * @return {number[][]}
 */
var palindromePairs = function(words) {
    const answer = [];
    const l = words.length;
    
    const checkUnion = union => {
        const len = union.length;
        for(let i = 0; i < len/2; i++){
            if(union[i] !== union[len-i-1]){
                return false;
            }
        }
        return true;
    }

    
    for(let i = 0; i < l; i++){
        for(let j = 0; j < l; j++){
            if(i !== j){
                const union = words[i].concat(words[j]);
                if(checkUnion(union)){
                    answer.push([i, j])
                } 
            }
        }
    }
    
    return answer;
};

 

 

더 많은 코드 보기(GitHub) : github.com/dwkim-97/CodingTest

 

 

반응형
저작자표시 (새창열림)

'LeetCode' 카테고리의 다른 글

[리트코드] 1306. Jump Game III / Javascript  (0) 2021.09.29
[리트코드] 45. Jump Game II / Javascript  (0) 2021.09.28
[리트코드] 5. Longest Palindromic Substring / Javascript  (0) 2021.09.09
[리트코드] 2. Add Two Numbers / Javascript  (0) 2021.09.09
[리트코드] 1130. Minimum Cost Tree From Leaf Values / Javascript  (0) 2021.09.08
'LeetCode' 카테고리의 다른 글
  • [리트코드] 1306. Jump Game III / Javascript
  • [리트코드] 45. Jump Game II / Javascript
  • [리트코드] 5. Longest Palindromic Substring / Javascript
  • [리트코드] 2. Add Two Numbers / Javascript
개발하는 사막여우
개발하는 사막여우
개발개발 주저리주저리
    반응형
  • 개발하는 사막여우
    개발하는 사막여우
    개발하는 사막여우
  • 전체
    오늘
    어제
    • All (311)
      • Books (13)
        • 읽기 좋은 코드가 좋은 코드다 (13)
      • Study (6)
        • Blockchain (3)
        • Algorithm (3)
      • Baekjoon (36)
      • Programmers (166)
      • LeetCode (15)
      • Open Source (1)
        • Youtube Popout Player (1)
      • Language (32)
        • Python (9)
        • JS (8)
        • Java (5)
        • HTML (6)
        • CSS (4)
      • Library & Framework (15)
        • React.js (15)
      • IDE (2)
        • IntelliJ (2)
      • Airdrop (9)
      • Tistory (2)
      • etc.. (7)
        • Cozubi (6)
        • lol-chess (0)
  • 블로그 메뉴

    • Github
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    신규 코인 에어드랍
    백준
    프로그래머스
    파이썬
    알고리즘문제풀이
    Cozubi
    코주비
    카카오 공채
    programmers
    읽기 좋은 코드가 좋은 코드다
    카카오 알고리즘 문제
    코딩테스트연습
    2018 KAKAO BLIND RECRUITMENT
    클린 코드
    Python
    프로그래머스 위클리 챌린지
    카카오 코딩테스트
    클린 코드 작성법
    Java
    코인줍줍
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
개발하는 사막여우
[리트코드] 336. Palindrome Pairs / Javascript
상단으로

티스토리툴바