ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ์˜์–ด ๋๋ง์ž‡๊ธฐ (lv2)

2023. 6. 19. 21:00ยท๐Ÿ”’Algorithm

๋ฌธ์ œ ๐Ÿ”ฝ

https://school.programmers.co.kr/learn/courses/30/lessons/12981

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด ๐Ÿ”ฝ

function solution(n, words) {

    var fail_i = -1;
    for(var i = 1; i < words.length; i++){
        var val = words[i];
        // ์ „๋‹จ๊ณ„์˜ ๋๋ง๊ณผ ํ˜„๋‹จ๊ณ„ ์ฒซ๋ง์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ
        if(words[i-1].substring(words[i-1].length-1) != val.substring(0, 1)) {
            fail_i = i;
            break;
        } 
        // indexOf ํ•จ์ˆ˜๋Š” ์ฒซ๋ฒˆ์งธ๋กœ ๊ฐ’์ด ๋งž๋Š” ์ธ๋ฑ์Šค๋งŒ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ
        // ํ˜„์žฌ ์ธ๋ฑ์Šค์™€ ๋งž์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ค‘๋ณต๋œ ๊ฐ’
        if(words.indexOf(val) != i) {
            fail_i = i;
            break;
        }
    }

    if(fail_i == -1) return [0,0];

    var no = fail_i%n + 1;
    var turn = Math.floor(fail_i/n) + 1; 

    return [no, turn];
}

๋‚ดํ’€์ด๐Ÿ”ฝ

function solution(n, words) {

    // n๋ช…์ด m๊ฐœ์˜ ๋‹จ์–ด๋ฅผ ๋Š๋ง์ž‡๊ธฐ ์ง„ํ–‰ 

    let stack = []
    let stopPoint =0;
    for(let i=0; i<words.length; i++){
        if(words[i-1]){
            if(stack.includes(words[i])||words[i-1].charAt(words[i-1].length-1)!==words             [i].charAt(0)){
                stopPoint = i+1;
                break; 
            }else{
                stack.push(words[i])
            }         
        }else{
            stack.push(words[i]);
        }
    }
    if(stopPoint){
        if(stopPoint%n===0){
            return [n,parseInt(stopPoint/n)]
        }else{
            return [stopPoint%n,parseInt(stopPoint/n)+1]
        }
    }else{
        return [0,0]
    }   
}

 

๋А๋‚€์ ๐Ÿ”ฝ

์ฒ˜์Œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์„๋•Œ ํ…Œ์ŠคํŠธ ๊ฒ€์‚ฌ์—์„œ ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ–ˆ์—ˆ๊ณ  ๋ฌด์—‡๋•Œ๋ฌธ์ธ์ง€ ํ•œ ์ฐธ ๊ณ ๋ฏผํ•˜๋‹ค ๋…ผ๋ฆฌ์— ์žˆ์–ด ์˜ค๋ฅ˜ ๋ถ€๋ถ„์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๋ฐ”๋กœ %์—ฐ์‚ฐ์—์„œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ผ ๊ฒฝ์šฐ์—๋Š” n๋ฒˆ์งธ ์‚ฌ๋žŒ์ด ํ‹€๋ ธ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ ์‹ค์ œ ๊ฐ’ 0๊ณผ n์€ ๋‹ค๋ฅด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋˜ํ•œ ๋ผ์šด๋“œ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌํ•˜์—ฌ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด 3๋ช…์ด์„œ ๋Š๋ง์ž‡๊ธฐ ์ค‘ 8๋ฒˆ์งธ์—์„œ ์‹คํŒจํ–ˆ์„๋•Œ 9๋ฒˆ์งธ ์‹คํŒจํ–ˆ์„๊ฒฝ์šฐ ์ „์ž๋Š” 8/3+1 =>3๋ฒˆ์งธ ๋ผ์šด๋กœ ์—ฐ์‚ฐํ•˜๋ฉด ๋˜๊ณ  ํ›„์ž์˜ ๊ฒฝ์šฐ 9/3 =3 => ์ถ”๊ฐ€๋กœ +1์„ ํ•˜์ง€ ์•Š์•„๋„ ์‹คํŒจํ•œ ๋ผ์šด๋“œ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋ฉด์„œ charAt ๋ฉ”์„œ๋“œ๋ฅผ ์ฒ˜์Œ ์จ๋ดค๋‹ค.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/charAt

 

String.prototype.charAt() - JavaScript | MDN

charAt() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ์ธ๋ฑ์Šค์— ์œ„์น˜ํ•˜๋Š” ์œ ๋‹ˆ์ฝ”๋“œ ๋‹จ์ผ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

developer.mozilla.org

 

 

 

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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ์˜ˆ์ƒ ๋Œ€์ง„ํ‘œ(lv2)  (0) 2023.06.23
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ์นดํŽซ (lv2)  (0) 2023.06.20
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ(lv2)  (0) 2023.06.18
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜(lv2)  (0) 2023.06.17
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ๋‹ค์Œ ํฐ ์ˆซ์ž(lv2)  (0) 2023.06.16
'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ์˜ˆ์ƒ ๋Œ€์ง„ํ‘œ(lv2)
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ์นดํŽซ (lv2)
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ(lv2)
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜(lv2)
devWarrior
devWarrior
  • devWarrior
    devWarrior
    devWarrior
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸงฉDev (263)
      • โญFE (34)
      • ๐Ÿ”’Algorithm (155)
      • โž•Etc. (11)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

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

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
devWarrior
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ์˜์–ด ๋๋ง์ž‡๊ธฐ (lv2)
์ƒ๋‹จ์œผ๋กœ

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