티스토리 뷰
코딩 테스트 결과가 너무 형편없어서 하나한 기초부터 다시 스킬업을 시켜보고자 한다.
백준 알고리즘 기초 강의에 있는 문제들이 연습하기 적절하다 하여 거기 있는 모든 문제를 풀고자 한다.
화이팅!
- input 데이터를 제대로 받는 방법을 아는 것이 이 과제의 가장 큰 핵심인 것 같다 (...??)
- stack 구조는 말하자면 말 뜻 그대로 젤 위에 입구가 하나인 data를 stacking 하는 구조의 데이터!
import sys
if __name__ == "__main__" :
N = int(sys.stdin.readline())
staack = []
for i in range(N) :
inp_ = sys.stdin.readline().split()
if inp_[0] == "push" :
val = int(inp_[1])
staack.append(val)
elif inp_[0] == "pop" :
if len(staack) > 0 :
val = staack.pop()
print(val)
else :
print(-1)
elif inp_[0] == "size" :
print(len(staack))
elif inp_[0] == "empty" :
print(1 if len(staack) == 0 else 0)
elif inp_[0] == "top" :
if len(staack) > 0 :
print(staack[-1])
else :
print(-1)
- input() 함수를 사용하면 엔터를 칠때까지 (\n) 프로그램이 멈춰있다. input으로 들어오는 데이터의 마지막 부분에 엔터가 없어서 그런 것 같다. 진짜 백준은 불편하다.
- 게다가 input 데이터를 space로 나누는 부분도 split()으로 하면 자동으로 나뉜다고 한다 이 기능은 input() 함수나 stdin.readline을 쓸 일이 평소 없다보니 몰랐다. 어떻게 데이터가 들어오는지 궁금해서 테스트 해봤다
>>> import sys
>>> sys.stdin.readline()
123 456
'123 456\n'
>>> sys.stdin.readline().split()
123 456
['123', '456']
>>>
- 위와 같이 나온다, 백준 문제를 풀 때는 이런 부분을 조심해야할듯하다
'coding skill' 카테고리의 다른 글
[백준][문제 풀기] 알고리즘 기초 1/2 - 1158 요세푸스 문제 (0) | 2022.03.11 |
---|---|
[백준][문제 풀기] 알고리즘 기초 1/2 - 1406 에디터 (0) | 2022.03.11 |
[백준][문제 풀기] 알고리즘 기초 1/2 - 1874 스택 수열 (0) | 2022.03.11 |
[백준][문제 풀기] 알고리즘 기초 1/2 - 9012 괄호 (0) | 2022.03.11 |
[백준][문제 풀기] 알고리즘 기초 1/2 - 9093 단어뒤집기 (0) | 2022.03.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준10828
- heap
- Stack
- 백준
- computer science
- Memory
- operation System
- Process vs Thread
- dynamic programming
- 코딩연습
- 기술면접질문
- 카드구매하기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함