고양이와 코딩
[프로그래머스] 컨트롤 제트.py 본문
728x90
ㄴ ㅏ는 왜 stack을 생각하지 모태쓸까?
문제
코드
def solution(s):
answer = 0
list = s.split()
for i in range(len(list)):
if list[i] == 'Z':
answer -= int(list[i-1])
else:
answer += int(list[i])
return answer
오늘도 구글의 도움을 받아 코드를 작성했다!
이럴 때 마다 이렇게 모를 때 몇시간 고민을 하지 않고 답을 보는게 맞나? 싶은 생각이 드는데
그냥 배끼는게 아니라 그 과정에서 배우는게 있다면 !! 괜찮은 거라고 생각한다( 내 생각 ~^^)
!! 나의 실수들 !!
1. split() 할 생각을 안함
2. list[i-1] 앞에 int 를 쓸 생각 안함
그리고 다른 사람의 답변
def solution(s):
stack = []
for i in s.split():
if i != 'Z':
stack.append(int(i))
else:
if stack:
stack.pop()
return sum(stack)
스택을 사용한 코드인 것이다!!
전공수업에서 배운 것들을 알차게 써먹는 고수들을 보면 신기하다.
1. 비어있는 stack에 i가 'Z' 가 아닌 경우 i를 정수로 변환해서 stack 리스트에 추가한다!
2. i가 'Z' 일 경우에 stack이 비어있지 않다면, 가장 마지막에 추가된 값을 pop()으로 제거한다.
'python' 카테고리의 다른 글
[프로그래머스] 3 6 9 게임 (0) | 2023.04.18 |
---|---|
[프로그래머스] 가까운 수.py (0) | 2023.04.17 |
[프로그래머스] 배열 회전시키기.py (따봉 gpt야 고마워!) (0) | 2023.04.10 |
[프로그래머스] 2차원으로만들기.py (0) | 2023.04.06 |
[프로그래머스] 모스부호 (1).py (0) | 2023.04.04 |