LeetCode [JS] > 859. Buddy strings

2025. 4. 5. 21:30ยท๐Ÿ”’Algorithm

๐Ÿ“Œ๋ฌธ์ œ๋งํฌ

https://leetcode.com/problems/buddy-strings/

๐Ÿ”จ๋ฌธ์ œํ’€์ด

์ด ๋ฌธ์ œ๋Š” s, goal ์ด ์„œ๋กœ ์™„์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ž์ผ ๋•Œ, ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅผ๋•Œ, ๋ฌธ์ž์ค‘์— 2๊ฐœ๋งŒ ๋‹ค๋ฅผ๋•Œ๋ฅผ ๋ถ„๊ธฐ์ฒ˜๋ฆฌํ•˜์—ฌ ํ’€๋ฉด ๋œ๋‹ค. ๊ฒฐ๊ตญ ๊ฒฝ์šฐ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์กฐ๊ธˆ๋งŒ ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(n)์ด๋‹ค. 

์™„์ „ํžˆ ๋™์ผํ•œ ๋ฌธ์ž์—ด์ผ ๋•Œ๋Š” s ๋ฌธ์ž์ค‘ ์ค‘๋ณต๋˜๋Š” ๋ฌธ์ž๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹น ๋ฌธ์ž๋ผ๋ฆฌ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”๋„ ๋™์ผํ•œ ๋ฌธ์ž์—ด์ด ๋˜๋Š”๋ฐ ์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜๋Š” Set() ๊ฐ์ฒด๋ฅผ ์ป๋‹ค. Set ๊ฐ์ฒด๋Š” ์–ผํ•๋ณด๋ฉด ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(n^2) ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ๋Š”๋ฐ Set๊ฐ์ฒด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ Hash Table์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์ œ๋ก  O(n) ์ด๋‹ค. 

/**
 * @param {string} s
 * @param {string} goal
 * @return {boolean}
 */
var buddyStrings = function (s, goal) {
    if (s.length !== goal.length) {
        return false;
    }

    if(s===goal){
        return new Set([...s]).size === s.length ? false : true           
    }
    
    let diffIdxArr = [];
    for (let i = 0; i < s.length; ++i) {
        if (s[i] !== goal[i]) {
            diffIdxArr.push(i);
        }
    }

    if (diffIdxArr.length === 2){
        const [i,j] = diffIdxArr 
        return s[i] === goal[j] && s[j] === goal[i]
    } 

    return false;
};

 

'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

LeetCode [JS] > 1496. Path Crossing  (0) 2025.04.08
LeetCode [JS] > 1128. Number of Equivalent Domino Pairs  (0) 2025.04.07
LeetCode [JS] > 2780. Minimum Index of a Valid Split  (0) 2025.04.05
LeetCode > 2208 Minimum Operations to Halve Array Sum  (0) 2025.04.05
LeetCode > 1346. Check If N and Its Double Exist  (0) 2025.04.03
'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • LeetCode [JS] > 1496. Path Crossing
  • LeetCode [JS] > 1128. Number of Equivalent Domino Pairs
  • LeetCode [JS] > 2780. Minimum Index of a Valid Split
  • LeetCode > 2208 Minimum Operations to Halve Array Sum
devWarrior
devWarrior
  • devWarrior
    devWarrior
    devWarrior
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸงฉDev (263)
      • โญFE (34)
      • ๐Ÿ”’Algorithm (155)
      • โž•Etc. (11)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
    • ๊ด€๋ฆฌ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    DFS
    react
    ๊ตฌํ˜„
    node.js
    ์‹ค๋ฒ„2
    ์‹ค๋ฒ„3
    ํ”„๋ก ํŠธ์—”๋“œ
    Easy
    nodejs
    Lv2
    dp
    javascript
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    js
    leetcode
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ๊ณจ๋“œ5
    ๊ทธ๋ฆฌ๋””
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ๋ฐฑ์ค€
    FE
    BFS
    ์ž์Šค
    ์ฝ”ํ…Œ
    ์˜ค๋ธ”์™„
    ์‹ค๋ฒ„1
    ์‹ค๋ฒ„4
    Algorithm
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
devWarrior
LeetCode [JS] > 859. Buddy strings
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”