[Baekjoon] 4949 - πŸŒκ· ν˜•μž‘νžŒ 세상

ChobbyΒ·2023λ…„ 11μ›” 15일
1

Baekjoon

λͺ©λ‘ 보기
81/108

πŸ˜€λ¬Έμ œ

μ„Έκ³„λŠ” κ· ν˜•μ΄ 잘 μž‘ν˜€μžˆμ–΄μ•Ό ν•œλ‹€. μ–‘κ³Ό 음, λΉ›κ³Ό μ–΄λ‘  그리고 μ™Όμͺ½ κ΄„ν˜Έμ™€ 였λ₯Έμͺ½ κ΄„ν˜Έμ²˜λŸΌ 말이닀.

μ •λ―Όμ΄μ˜ μž„λ¬΄λŠ” μ–΄λ–€ λ¬Έμžμ—΄μ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ, κ΄„ν˜Έλ“€μ˜ κ· ν˜•μ΄ 잘 맞좰져 μžˆλŠ”μ§€ νŒλ‹¨ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μ§œλŠ” 것이닀.

λ¬Έμžμ—΄μ— ν¬ν•¨λ˜λŠ” κ΄„ν˜ΈλŠ” μ†Œκ΄„ν˜Έ("()") 와 λŒ€κ΄„ν˜Έ("[]")둜 2μ’…λ₯˜μ΄κ³ , λ¬Έμžμ—΄μ΄ κ· ν˜•μ„ μ΄λ£¨λŠ” 쑰건은 μ•„λž˜μ™€ κ°™λ‹€.

λͺ¨λ“  μ™Όμͺ½ μ†Œκ΄„ν˜Έ("(")λŠ” 였λ₯Έμͺ½ μ†Œκ΄„ν˜Έ(")")μ™€λ§Œ 짝을 이뀄야 ν•œλ‹€.
λͺ¨λ“  μ™Όμͺ½ λŒ€κ΄„ν˜Έ("[")λŠ” 였λ₯Έμͺ½ λŒ€κ΄„ν˜Έ("]")μ™€λ§Œ 짝을 이뀄야 ν•œλ‹€.
λͺ¨λ“  였λ₯Έμͺ½ κ΄„ν˜Έλ“€μ€ μžμ‹ κ³Ό 짝을 이룰 수 μžˆλŠ” μ™Όμͺ½ κ΄„ν˜Έκ°€ μ‘΄μž¬ν•œλ‹€.
λͺ¨λ“  κ΄„ν˜Έλ“€μ˜ 짝은 1:1 맀칭만 κ°€λŠ₯ν•˜λ‹€. 즉, κ΄„ν˜Έ ν•˜λ‚˜κ°€ λ‘˜ μ΄μƒμ˜ κ΄„ν˜Έμ™€ 짝지어지지 μ•ŠλŠ”λ‹€.
짝을 μ΄λ£¨λŠ” 두 κ΄„ν˜Έκ°€ μžˆμ„ λ•Œ, κ·Έ 사이에 μžˆλŠ” λ¬Έμžμ—΄λ„ κ· ν˜•μ΄ μž‘ν˜€μ•Ό ν•œλ‹€.
정민이λ₯Ό 도와 λ¬Έμžμ—΄μ΄ μ£Όμ–΄μ‘Œμ„ λ•Œ κ· ν˜•μž‘νžŒ λ¬Έμžμ—΄μΈμ§€ μ•„λ‹Œμ§€λ₯Ό νŒλ‹¨ν•΄λ³΄μž.


πŸ˜μž…λ ₯

각 λ¬Έμžμ—΄μ€ λ§ˆμ§€λ§‰ κΈ€μžλ₯Ό μ œμ™Έν•˜κ³  영문 μ•ŒνŒŒλ²³, 곡백, μ†Œκ΄„ν˜Έ("( )"), λŒ€κ΄„ν˜Έ("[ ]")둜 이루어져 있으며, 온점(".")으둜 λλ‚˜κ³ , κΈΈμ΄λŠ” 100κΈ€μžλ³΄λ‹€ μž‘κ±°λ‚˜ κ°™λ‹€.

μž…λ ₯의 μ’…λ£Œμ‘°κ±΄μœΌλ‘œ 맨 λ§ˆμ§€λ§‰μ— 온점 ν•˜λ‚˜(".")κ°€ λ“€μ–΄μ˜¨λ‹€.
좜λ ₯
각 μ€„λ§ˆλ‹€ ν•΄λ‹Ή λ¬Έμžμ—΄μ΄ κ· ν˜•μ„ 이루고 있으면 "yes"λ₯Ό, μ•„λ‹ˆλ©΄ "no"λ₯Ό 좜λ ₯ν•œλ‹€.


πŸ˜‚μ˜ˆμ œ

예제 μž…λ ₯ 1 
So when I die (the [first] I will see in (heaven) is a score list).
[ first in ] ( first out ).
Half Moon tonight (At least it is better than no Moon at all].
A rope may form )( a trail in a maze.
Help( I[m being held prisoner in a fortune cookie factory)].
([ (([( [ ] ) ( ) (( ))] )) ]).
 .
.
예제 좜λ ₯ 1 
yes
yes
no
no
no
yes
yes

🀣힌트

7번째의 " ."와 같이 κ΄„ν˜Έκ°€ ν•˜λ‚˜λ„ μ—†λŠ” κ²½μš°λ„ κ· ν˜•μž‘νžŒ λ¬Έμžμ—΄λ‘œ κ°„μ£Όν•  수 μžˆλ‹€.


πŸ˜ƒμΆœμ²˜

  • ICPC > Regionals > Asia Pacific > Japan > Japan Domestic Contest > 2011 Japan Domestic Contest B번
  • 문제의 μ˜€νƒ€λ₯Ό 찾은 μ‚¬λžŒ: chminoo
  • 잘λͺ»λœ λ²ˆμ—­μ„ 찾은 μ‚¬λžŒ: jh05013
  • 문제λ₯Ό λ²ˆμ—­ν•œ μ‚¬λžŒ: occidere

πŸ˜„μ•Œκ³ λ¦¬μ¦˜ λΆ„λ₯˜

  • 자료 ꡬ쑰
  • λ¬Έμžμ—΄
  • μŠ€νƒ

πŸ˜Žλ‚˜μ˜ν’€μ΄

const signDict = ['(', ')', '[', ']']
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split("\n")
input.pop()
const result = input.map(a => {
    const signStack = []
    for(let i = 0 ; i < a.length ; i ++) {
        const curStr = a[i]
        if(!signDict.includes(curStr)) continue
        if(curStr === '(' || curStr === '[') {
            signStack.push(curStr)
        }
        else {
            const lastSign = signStack.at(-1)
            if(curStr === ')') {
                if(lastSign !== '(') return 'no'
            } else {
                if(lastSign !== '[') return 'no'
            }
            signStack.pop()
        }
    }
    return (!signStack.length) ? 'yes' : 'no'
})

console.log(result.join('\n'))
profile
λ‚΄ 지식을 κ³΅μœ ν•  수 μžˆλŠ” λŒ€λ‹΄ν•¨

0개의 λŒ“κΈ€