코딩기록

항해 57일) (Python 3)백준 알고리즘 10773번 본문

항해99/(파이썬)알고리즘 스터디

항해 57일) (Python 3)백준 알고리즘 10773번

뽀짝코딩 2022. 3. 7. 08:00
728x90

 

답안

스택 자료구조 문제

count = int(input()) # 스택 리스트 안의 총 개수
list = []   #스택 리스트  
for i in range(count):  # for in range로 count 만큼의 수를 만듬
    num = int(input())
    if num == 0:  # num이 0이면 pop으로 삭제 
        list.pop()
    else:
        list.append(num) # 0이 아니면 append (push)
print(sum(list))  #sum함수를 이용해 모든 수를 더한다

입력 값이 0이면 pop, 아니면 push하고 리트스 총합을 구한다.

 

리스트를 생성하고 for문을 돌려 입력을 받는다.

입력받은 숫자가 0이라면 pop으로 삭제하고 아니라면 리스트에 추가한다.

마지막으로 sum을 이용해 모두 더해주고 출력해준다.

 

 

 

✅ 알아야 할 것

스택(Stack)

스택 데이터의 삽입과 삭제가 데이터의 한쪽 끝에서만 일어나는 자료구조 이다.

가장 마지막에 삽입된 데이터가 가장 먼저 사용되거나 삭제된다.

이를 후입선출 ( LIFO - Last In, First Out )이라고 한다.

예) 프링글스

더보기

2. 주요 Method

2-1. push, pop

데이터를 삽입하는 과정을 push,

가장 마지막에 삽입한 데이터를 삭제하는 과정을 pop이라고 부른다.

데이터를 삭제하는 pop의 경우 현재 스택에 데이터가 비어있는지 여부를 먼저 확인한 후에 실행한다.

2-2. top

pop이 가장 마지막에 삽입한 데이터를 삭제하는 것이라면

top은 가장 마지막에 삽입한 데이터를 삭제하지 않고 return 해주는 메소드이다.

 

 

2-3. isEmpty

isEmpty는 현재 스택이 비어있는지 여부를 확인하는 메소드 입니다.

 

 

pop() - 요소 삭제 함수

리스트의 맨 마지막 요소를 돌려주고 그 요소는 삭제한다.

x = [2,4,6,2,3,4,8,2]

pop_X = x.pop(2)

print(x)
print(pop_X)
print(x[3])

==========================================
[2, 4, 2, 3, 4, 8, 2]
6
3

append() - 요소 추가 함수

'list명.append(요소)' 형식으로 사용

리스트의 맨 마지막에 요소를 추가한다.

nums = [1, 2, 3]
nums.append(4)
print(1,nums)

nums.append([5, 6])
print(2,nums)

nums.append(7)
print(3,nums)

 

 

 

 

참고


* 파이썬으로 구현하는 자료구조! - 스택(Stack)
https://somjang.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%8A%A4%ED%83%9D-Stack

 

 

 

 

 

 

 

참고

*백준 문제

10773번: 제로 (acmicpc.net)

 

반응형
Comments