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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1] ์นด๋“œ๋ญ‰์น˜

Yuuuki 2024. 8. 1. 23:11

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

 

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

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

programmers.co.kr

 

โœ… ์ •๋‹ต ํ’€์ด Queue (Python)

# ๊ฐ€์žฅ ๋งจ์•ž ์š”์†Œ๊ฐ€ ๋น ์ ธ๋‚˜๊ฐ€์•ผ ๋‹ค์Œ ์š”์†Œ๊ฐ€ ๋น ์ ธ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ -> queue ์‚ฌ์šฉ
from collections import deque
def solution(cards1, cards2, goal):

    first_cards=deque(cards1)
    sec_cards=deque(cards2)

    for word in goal:
        if first_cards and word==first_cards[0]:
            print(first_cards.popleft())
        elif sec_cards and word==sec_cards[0]:
            print(sec_cards.popleft())
        else:
            return 'No'
    return 'Yes'

 

๊ฐ ์นด๋“œ ๋ญ‰์น˜์—์„œ ์ˆœ์„œ๋Œ€๋กœ, ์ฆ‰ ๋งจ์•ž์˜ ์นด๋“œ๊ฐ€ ๋น ์ ธ๋‚˜๊ฐ€์•ผ๋งŒ ๋‹ค์Œ ์นด๋“œ๊ฐ€ ๋น ์ ธ๋‚˜๊ฐˆ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. 

์กฐ๊ฑด๋ฌธ์œผ๋กœ, ์นด๋“œ๋ญ‰์น˜์˜ ์ฒซ๋ฒˆ์งธ ์นด๋“œ๋ฅผ ๋น„๊ตํ•ด์„œ ์ผ์น˜ํ•˜๋ฉด ์ฒซ๋ฒˆ์จฐ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๋‘ ์นด๋“œ ๋ญ‰์น˜์— ์—†์œผ๋ฉด No๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

์นด๋“œ๋ญ‰์น˜์— ์นด๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด indexError๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์กฐ๊ฑด๋ฌธ์— ๋จผ์ € ์นด๋“œ๋ญ‰์น˜ ํ๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

 

 

 

โœ… ์ •๋‹ต ํ’€์ด Index (JavaScript)

function solution(cards1, cards2, goal) {
    let idx1=0;
    let idx2=0;

    for (let word of goal) {
        if(word===cards1[idx1]){
            idx1++
        }else if(word===cards2[idx2]){
            idx2++
        }else {
            return "No"
        }
    }

    return "Yes" ;
}

์ด์ „์— ํ’€์—ˆ๋˜, js ํ’€์ด์ด๋‹ค.

ํ๋ฅผ ๋”ฐ๋กœ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” js์—์„œ๋Š” ๋ฐฐ์—ด ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด, ๊ฐ ์นด๋“œ๋ญ‰์น˜์˜ ์ธ๋ฑ์Šค๋ฅผ ์นด์šดํŠธํ•˜๋ฉด์„œ ํฌ์ธํ„ฐ ์ด๋™์„ ํ•˜๋ฉด์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ํ™•์ธํ•˜๋Š”์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.