๐Ÿ‘ฉ‍๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/๐Ÿข PYTHON

[์Šคํƒ ์˜ˆ์ œ] ๋ฐฑ์ค€ 10828๋ฒˆ

์˜ค๋ธŒ ๐Ÿง™‍โ™‚๏ธ 2024. 7. 9. 10:40

https://www.acmicpc.net/problem/10828

 

๋ฌธ์ œ :

์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์Šคํƒ์„ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋ช…๋ น์€ ์ด ๋‹ค์„ฏ ๊ฐ€์ง€์ด๋‹ค.

  • push X: ์ •์ˆ˜ X๋ฅผ ์Šคํƒ์— ๋„ฃ๋Š” ์—ฐ์‚ฐ์ด๋‹ค.
  • pop: ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ๋นผ๊ณ , ๊ทธ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • size: ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • empty: ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • top: ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

์†”๋ฃจ์…˜ : 

์ฒ˜์Œ์— ๋ช…๋ น์–ด ๊ฐœ์ˆ˜ ์ˆซ์ž ๋ฐ›๊ณ 

๊ฐ ๊ธฐ๋Šฅ if๋ฌธ์œผ๋กœ ๋ฐ›์•„ ์ถœ๋ ฅํ•œ๋‹ค. (def๋กœ ์ •์˜ํ•ด๋„ ๋˜๋Š” ๋“ฏ)

 

๐ŸŒŸ ์ค‘์š” ํฌ์ธํŠธ๋Š” int(input())์œผ๋กœ ๋ฐ›์œผ๋ฉด ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค๋Š” ๊ฒƒ. sys.stdin.readline()์„ ํ™œ์šฉํ•ด์•ผ ํ•˜๋ฉฐ, ๊ทธ ์ค‘์—์„œ๋„ ์šฐ๋ฆฐ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— sys.stdin.readline.split() ๊นŒ์ง€ ๋„ฃ์–ด ์ž…๋ ฅ ๋ฐ›์€ ๊ฒƒ๋“ค์„ int๋กœ ํ˜•๋ณ€ํ™˜ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. 

์ฐธ๊ณ ํ•œ ๋ธ”๋กœ๊ทธ๋Š” ์—ฌ๊ธฐ

โฌ‡๏ธ

https://velog.io/@yeseolee/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%A0%A5-%EC%A0%95%EB%A6%ACsys.stdin.readline

 

[Python ๋ฌธ๋ฒ•] ํŒŒ์ด์ฌ ์ž…๋ ฅ ๋ฐ›๊ธฐ(sys.stdin.readline)

ํŒŒ์ด์ฌ์œผ๋กœ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•œ๋‹ค๋ฉด, ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•  ์ž…๋ ฅ๋ฐฉ์‹์ธ sys.stdin.readline()์— ๋Œ€ํ•œ ์ •๋ฆฌ ์ž…๋‹ˆ๋‹ค.

velog.io

 

import sys
n = int(sys.stdin.readline())

stack=[]

for i in range(n):
    command = sys.stdin.readline().split()
    if command[0]=='push':
        stack.append(command[1])
    elif command[0]=='pop':
        if len(stack)==0:
            print(-1)
        else:
            print(stack.pop())
    elif command[0] == 'size':
        print(len(stack))
    elif command[0] == 'empty':
        if len(stack)==0:
            print(1)
        else:
            print(0)
    elif command[0] == 'top':
        if len(stack)==0:
            print(-1)
        else:
            print(stack[-1])