관리 메뉴

Daehyunii's Dev-blog

κ΅μœ‘κ³Όμ • 섀계(자료ꡬ쑰-큐) λ³Έλ¬Έ

πŸ“š Language & CS knowledge/Algorithm (κΈ°μ΄ˆλ¬Έμ œν’€μ΄)

κ΅μœ‘κ³Όμ • 섀계(자료ꡬ쑰-큐)

Daehyunii 2022. 9. 6. 19:01

문제(좜처 : μΈν”„λŸ° μžλ°”μŠ€ν¬λ¦½νŠΈ μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œν’€μ΄ κ°•μ˜, μ •λ³΄μ˜¬λ¦Όν”Όμ•„λ“œ)

ν˜„μˆ˜λŠ” 1λ…„ κ³Όμ •μ˜ μˆ˜μ—…κ³„νšμ„ μ§œμ•Ό ν•©λ‹ˆλ‹€.
μˆ˜μ—…μ€‘μ—λŠ” ν•„μˆ˜κ³Όλͺ©μ΄ μžˆμŠ΅λ‹ˆλ‹€. 이 ν•„μˆ˜κ³Όλͺ©μ€ λ°˜λ“œμ‹œ μ΄μˆ˜ν•΄μ•Ό ν•˜λ©°, κ·Έ μˆœμ„œλ„ μ •ν•΄μ Έ 있 μŠ΅λ‹ˆλ‹€.
λ§Œμ•½ 총 κ³Όλͺ©μ΄ A, B, C, D, E, F, Gκ°€ 있고, μ—¬κΈ°μ„œ ν•„μˆ˜κ³Όλͺ©μ΄ CBA둜 주어지면 ν•„μˆ˜κ³Όλͺ©μ€ C, B, Aκ³Όλͺ©μ΄λ©° 이 μˆœμ„œλŒ€λ‘œ κΌ­ μˆ˜μ—…κ³„νšμ„ μ§œμ•Ό ν•©λ‹ˆλ‹€.
μ—¬κΈ°μ„œ μˆœμ„œλž€ Bκ³Όλͺ©μ€ Cκ³Όλͺ©μ„ μ΄μˆ˜ν•œ 후에 λ“€μ–΄μ•Ό ν•˜κ³ , Aκ³Όλͺ©μ€ C와 Bλ₯Ό μ΄μˆ˜ν•œ 후에 λ“€ μ–΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
ν˜„μˆ˜κ°€ C, B, D, A, G, E둜 μˆ˜μ—…κ³„νšμ„ 짜면 μ œλŒ€λ‘œ 된 μ„€κ³„μ΄μ§€λ§Œ
C, G, E, A, D, B μˆœμ„œλ‘œ μ§°λ‹€λ©΄ 잘 λͺ» μ„€κ³„λœ μˆ˜μ—…κ³„νšμ΄ λ©λ‹ˆλ‹€.
μˆ˜μ—…κ³„νšμ€ κ·Έ μˆœμ„œλŒ€λ‘œ μ•žμ— μˆ˜μ—…μ΄ 이수되면 λ‹€μŒ μˆ˜μ—…μ„ μ‹œμž‘ν•˜λ‹€λŠ” κ²ƒμœΌλ‘œ ν•΄μ„ν•©λ‹ˆλ‹€. μˆ˜μ—…κ³„νšμ„œμƒμ˜ 각 κ³Όλͺ©μ€ 무쑰건 μ΄μˆ˜λœλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.
ν•„μˆ˜κ³Όλͺ©μˆœμ„œκ°€ 주어지면 ν˜„μˆ˜κ°€ μ§  N개의 μˆ˜μ—…μ„€κ³„κ°€ 잘된 것이면 “YES", 잘λͺ»λœ 것이면 ”NO“λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ„Έμš”.

β–£ μž…λ ₯μ„€λͺ…
첫 쀄에 ν•œ 쀄에 ν•„μˆ˜κ³Όλͺ©μ˜ μˆœμ„œκ°€ μ£Όμ–΄μ§‘λ‹ˆλ‹€. λͺ¨λ“  κ³Όλͺ©μ€ 영문 λŒ€λ¬Έμžμž…λ‹ˆλ‹€. 두 번 μ§Έ 쀄뢀터 ν˜„μˆ˜κ°€ μ§  μˆ˜μ—…μ„€κ³„κ°€ μ£Όμ–΄μ§‘λ‹ˆλ‹€.(μˆ˜μ—…μ„€κ³„μ˜ κΈΈμ΄λŠ” 30μ΄ν•˜μ΄λ‹€)

 

β–£ 좜λ ₯μ„€λͺ…
μˆ˜μ—…μ„€κ³„κ°€ 잘된 것이면 “YES", 잘λͺ»λœ 것이면 ”NO“λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

 

β–£ μž…λ ₯예제 1

CBA
CBDAGE

 

β–£ 좜λ ₯예제 1

YES

 

 

 

Tip

 

 

λ¬Έμ œν’€μ΄

 //λ‚΄κ°€ μž‘μ„±ν•œ λ‹΅
function solution(essential,subjects){
    let answer = 'YES';
    let queue = [];

    for(let x of essential){
        queue.push(x);
    }

    for(let i = 0 ; i < subjects.length ; i++){
        if(queue.includes(subjects[i])){
            let temp = queue.shift();
            if(temp !== subjects[i]) return 'NO';
        }
    }

    if(queue.length !== 0) return 'NO';
    return answer;
};



let essentialSubjects = 'CBA';
let subjects = 'BCDAGE';
console.log(solution(essentialSubjects,subjects));