[TIL #3] ์ž‘์‹ฌ์‚ผ์ผ์˜ ์œ„ํ—˜์ด ์žˆ๋Š” ๋‚  (2023.02.27 ์›”)

2023. 2. 27. 22:24ใ†Today I Learned

TIL 2023.02.27 ๐Ÿฃ

์•„๋น ๊ฐ€ ์—ฐ์ฐจ๋‚ด๊ณ  ์ง‘์— ๊ณ„์…”์„œ ๊ทธ๋Ÿฐ์ง€ ๋‚˜๋„ ํœด์ผ๊ฐ™๋‹ค. ๋ฐฑ์ˆ˜๋ผ ๋งค์ผ๋งค์ผ์ด ํœด์ผ์ด๊ธด ํ•œ๋ฐ,,, ๋Š๋‚Œ์ด ๋‹ค๋ฅด๋‹ค. ๊ทธ๋ž˜์„œ ์™ ์ง€ ๋‚˜๋„ ์‰ฌ์–ด๋„ ๋  ๊ฑฐ ๊ฐ™์€ ๊ทธ๋Ÿฐ ๋Š๋‚Œ์ด ๋“ค์—ˆ์ง€๋งŒ ๊ฒจ์šฐ ์ด๊ฒจ๋ƒˆ๋‹ค. ํ›„ํ›„
๋‚ด์ผ์ด ์ง€๋‚˜๋ฉด ๋˜ ์‚ผ์ผ์ ˆ์ด๋ผ ํœด์ผ์ธ๋ฐ, ๊ผญ ์กฐ๊ธˆ์ด๋ผ๋„ ๊ณต๋ถ€ํ•˜๊ธธ ๋ฏธ๋ฆฌ ๋‹ค์งํ•œ๋‹ค.

์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

  • ๋ฆฌ์•กํŠธ ๊ฐ•์˜ ์„น์…˜ 2๋ฅผ ๋“ค์—ˆ๋‹ค. ๋ฆฌ์•กํŠธ ๋ฐฐ์šฐ๊ธฐ ์ „, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ณต์Šต๊ธฐ๊ฐ„์ž…๋‹ˆ๋‹ค.
    • ๋ถ„๋ช… ์˜ˆ์ „์— ๋ณ€์ˆ˜ ์„ ์–ธํ•  ๋•Œ var๋ฅผ ์ป๋˜๊ฑฐ ๊ฐ™์€๋ฐ, ์š”์ฆ˜์€ let์„ ์“ฐ๊ธธ๋ž˜ '์•„ ๋‚ด ๊ธฐ์–ต์ด ์ž˜๋ชป๋๋‚˜?' ํ–ˆ๋Š”๋ฐ var์™€ let ๋‘˜๋‹ค ๋ณ€์ˆ˜์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. → ํ•˜์ง€๋งŒ ๋‘ ๋ฐฉ์‹์— ์ฐจ์ด์ ์ด ์žˆ๋‹ค. var๋Š” ๋™์ผํ•œ ๋ณ€์ˆ˜๋ช…์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ณ€์ˆ˜ ์ค‘๋ณต ์„ ์–ธ ๊ฐ€๋Šฅ) ๋‚˜์ค‘์— ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— let์„ ์“ฐ๋Š”๊ฒŒ ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€์—ˆ๋‹ค
    • ๋ฐฑ์ค€ 24262 : ๋ฌธ์ œ๊ฐ€ ๋„˜ ํŠน์ดํ•˜๋‹ค. ๊ทธ๋ƒฅ ์ถœ๋ ฅ๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค๋‹ˆ..
    • ๋ฐฑ์ค€ 1974 : ๋ฌธ์ œ ๋‚ด์šฉ ํ•ด์„ํ•˜๋ ค๋‹ˆ ์–ด๋ ค์› ๋‹ค..์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ๋…ํ•ด ๋Šฅ๋ ฅ๋„ ํ‚ค์›Œ์•ผํ•˜๋„ค ๐Ÿ˜ž
    • ๋ฐฑ์ค€ 15829 : ๊ฐ„๋‹จํ•œ ํ•ด์‹œ ํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ. ๋ฌธ์ œ๊ฐ€ ๊ธธ์–ด์„œ ์ซ„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹น๋‹นํžˆ ์ด๊ฒจ๋ƒ„!
    • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์นด๋“œ ๋ญ‰์น˜ : ๋ ˆ๋ฒจ 1์˜ ๋ฌธ์ œ. ์˜ˆ์ „์—๋Š” ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๊ฐ€ ๋‚ฏ์„ค๋‹ค๋ณด๋‹ˆ ๋ ˆ๋ฒจ 1๋„ ์–ด๋ ค์› ๋Š”๋ฐ ์ด์   ์ด์ •๋„๋Š” ๊ปŒ์ด๋‹ค! ์•ผํ˜ธ
      ์ œ์ž๋ฆฌ ๊ฑท๊ธฐ ํ•˜๊ณ  ์žˆ๋Š” ๊ฑฐ ๊ฐ™์•„๋„ ๋‚˜๋Š” ๋ถ„๋ช…ํžˆ ์กฐ๊ธˆ์”ฉ์€ ์„ฑ์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๊ธ์ • ํŒŒ์›Œ๋ฅผ ๋ฏฟ๊ณ  ๋‚˜๋ฅผ ๋ฏฟ๊ณ  ๋‚˜์•„๊ฐ€์ž.
    • ๋ฐฑ์ค€ 4949 : flag ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ด„ํ˜ธ ์ฒดํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ -> ๊ท ํ˜• ์žกํžŒ ๋ฌธ์ž์—ด์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ํ•จ์ˆ˜ํ™” ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค!
      ์ œ์ถœํ•œ ์†Œ์Šค
import sys

while True:
    s_input = sys.stdin.readline().rstrip()
    stk = []
    flag = False

    if s_input == '.':
        break
    for s in s_input:
        if s == '(' or s == '[':
            stk.append(s)
        elif s == ')' :
            if not stk or stk[-1] != '(':
                flag = True
                break
            else:
                stk.pop()
        elif s == ']':
            if not stk or stk[-1] != '[':
                flag = True
                break
            else:
                stk.pop()
    if flag or stk:
        print("no")
    else:
        print("yes")

ํ•จ์ˆ˜ํ™”ํ•˜๊ธฐ

import sys

def isBalanced(s_input):
    for s in s_input:
        if s == '(' or s == '[':
            stk.append(s)
        elif s == ')' :
            if not stk or stk[-1] != '(':
                return "no"
            else:
                stk.pop()
        elif s == ']':
            if not stk or stk[-1] != '[':
                return "no"
            else:
                stk.pop()


    if stk:
        return "no"
    else:
        return "yes"

while True:
    s_input = sys.stdin.readline().rstrip()
    stk = []
    flag = False

    if s_input == '.':
        break

    # ํ•จ์ˆ˜ ํ˜ธ์ถœ
    print(isBalanced(s_input))

: flag๋ฅผ ์—†์• ๋‹ˆ ๋ณด๋‹ค ๋ช…ํ™•ํ•ด์ง„ ๋“ฏํ•˜๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์—์„œ๋„ ์œ ์—ฐํ•˜๊ฒŒ ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋” ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค!

์ถ”๊ฐ€์ ์œผ๋กœ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๐Ÿ‘

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์—ˆ๋‹ค๊ณ  ์•ผํ˜ธ! ํ•˜๊ณ  ๋๋‚ผ๊ฒŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋„ ๋ณด๋ฉด์„œ ์ ๊ทน์ ์œผ๋กœ ํ”ผ๋“œ๋ฐฑํ•ด๋‚˜๊ฐ€์•ผ๊ฒ ๋‹ค.
  • ๋‹ค์–‘ํ•œ ํ’€์ด๋ฐฉ์‹์— ์ ์‘ํ•ด๋‚˜๊ฐ€๊ธฐ.

๊ธฐํƒ€ ๐Ÿค”

3์ผ์ฐจ ์™„๋ฃŒ
๋‚ด์ผ๋„ ๊ผญ๊ผญ TIL ๊ธฐ๋กํ•˜๊ธฐ.