๋ฐฑ์ค€/Python

[Python] ๋ฐฑ์ค€_4949๋ฒˆ

๋‹ค๋ธ”๐Ÿ’ 2022. 5. 15. 23:57

4949๋ฒˆ ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ (silver 4)

์„ธ๊ณ„๋Š” ๊ท ํ˜•์ด ์ž˜ ์žกํ˜€์žˆ์–ด์•ผ ํ•œ๋‹ค. ์–‘๊ณผ ์Œ, ๋น›๊ณผ ์–ด๋‘  ๊ทธ๋ฆฌ๊ณ  ์™ผ์ชฝ ๊ด„ํ˜ธ์™€ ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ์ฒ˜๋Ÿผ ๋ง์ด๋‹ค.

์ •๋ฏผ์ด์˜ ์ž„๋ฌด๋Š” ์–ด๋–ค ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ด„ํ˜ธ๋“ค์˜ ๊ท ํ˜•์ด ์ž˜ ๋งž์ถฐ์ ธ ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์งœ๋Š” ๊ฒƒ์ด๋‹ค.

๋ฌธ์ž์—ด์— ํฌํ•จ๋˜๋Š” ๊ด„ํ˜ธ๋Š” ์†Œ๊ด„ํ˜ธ("()") ์™€ ๋Œ€๊ด„ํ˜ธ("[]")๋กœ 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

while True :
    a = input()
    parent = []
    
    if a == "." :
        break
    for i in a :
        if i == '[' or i == '(' :
            parent.append(i)
        elif i == ']' :
            if len(parent) != 0 and parent[-1] == '[' :
                parent.pop()        # ์ง์ด ๋งž์œผ๋ฉด pop์„ ํ•ด์„œ ์—†์• ์คŒ
            else : 
                parent.append(']')   # ์•„๋‹ˆ๋ฉด ๊ทธ๋Œ€๋กœ ์ถ”๊ฐ€
                break
        elif i == ')' :
            if len(parent) != 0 and parent[-1] == '(' :
                parent.pop()
            else :
                parent.append(')')
                break
    if len(parent) == 0 :   # ๋ชจ๋“  ์Œ์ด ๋‹ค pop์„ ํ•ด์„œ ์—†์–ด์กŒ๋‹ค๋ฉด yes ์ถœ๋ ฅ
        print('yes')
    else :
        print('no')

while True๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋น ์ ธ๋‚˜์˜ค๊ธฐ ์ „๊นŒ์ง€ ์•ˆ์˜ ์ฝ”๋“œ๋“ค์„ ๊ณ„์†ํ•˜๋„๋ก ํ•ด์ฃผ์—ˆ๋‹ค.

a์— input์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๋‹ด์•„์ฃผ์—ˆ๊ณ , for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ a์˜ ์›์†Œ๋“ค์—์„œ '[' ๋˜๋Š” '(' ์˜ ์—ฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ ์žˆ๋‹ค๋ฉด parent๋ผ๋Š” ๋ฐฐ์—ด์— ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค. ๊ทธ ๋‹ค์Œ a์˜ ์›์†Œ ์ค‘์—์„œ ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ์žˆ์„ ๋•Œ, parent์˜ ๋ฐฐ์—ด์˜ ์›์†Œ๊ฐ€ ์—†๋Š” ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๊ณ  parent์˜ ์›์†Œ์— ํ•ด๋‹นํ•˜๋Š” ์—ฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ ์žˆ๋‹ค๋ฉด pop์„ ํ•ด์ฃผ์–ด์„œ ์—ฌ๋Š” ๊ด„ํ˜ธ๋ฅผ ๋ฐฐ์—ด์—์„œ ์—†์• ์ค€๋‹ค. 

์ด์™€ ๊ฐ™์ด ์ง„ํ–‰ํ–ˆ์„ ๋•Œ ์ตœ์ข…์ ์œผ๋กœ parent๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด yes๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์•„๋‹ˆ๋ฉด no๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

'๋ฐฑ์ค€ > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 11651๋ฒˆ  (0) 2022.05.25
[Python] ๋ฐฑ์ค€ 2805๋ฒˆ  (0) 2022.05.24
[Python] ๋ฐฑ์ค€_ 4150๋ฒˆ  (0) 2022.05.08
[Python] ๋ฐฑ์ค€_2581๋ฒˆ  (0) 2022.05.08
[Python] ๋ฐฑ์ค€_1769๋ฒˆ  (0) 2022.05.08