백준 6198(옥상 정원 꾸미기 ) - Stack , Python
반응형
dd
자바 풀이의 경우
풀이
0. br.readLined으로 10 읽음. result=0, stack 안에는 10이 들어와 [10] |
1. 3 읽음. result=1 (들어온 수 3은 10보다 작으므로 그대로) -> 3을 볼 수 있는 숫자는 10 하나이다 -> 10은 3을 볼 수 있다. 즉, 3의 관점에서 10으로부터 보임을 당한다.그래서 +1이다 stack 안에는 [10,3] |
2. 7 읽음. result=1+1 ( 들어온 수 7은 3보다 크므로,3 pop | 7은 10보다 작으므로 10은 그대로) -> 7을 볼 수 있는 숫자는 10 하나 stack안에는 [10, 7] |
3. 4 읽음 result = 1+ 1 + 2 ( 들어온 수 4는 7보다 작으므로, 그대로 | 4는 7보다 작으므로 그대로 ) -> 4를 볼 수 있는 숫자는 10,7 둘 stack안에는 [10, 7, 4] |
4. 12 읽음 result = 1+ 1 + 2+ 0 ( 들어온 수 12는 4보다 크므로, 4 pop | 12는 7보다 크므로, 7 pop | 12는 10보다 크므로 10 pop ) -> 12를 볼 수 있는 것은 아무것도 없다. stack안에는 [12] |
5. 2 읽음 result = 1+ 1 + 2 +0 + 1 ( 들어온 수 2는 12보다 작으므로, 그대로 ) -> 2를 볼 수 있는 것은 12 하나 stack안에는 [12, 2] |
input()
num = int(input())
list=[]
cnt = 0
for i in range(num):
num = int(input())
while len(list)!=0 and num>=list[-1]:
#파이썬에서는
# &: 비교연산자,bitewise연산자
# and : 논리연산자, True,False 연산자
list.pop()
cnt +=len(list)
list.append(num)
print(cnt)
input()는 시간 초과가 날 수 있으므로 sys.stdin.readline() 사용
import sys
num = int(sys.stdin.readline())
list=[]
cnt = 0
for i in range(num):
num = int(sys.stdin.readline())
while len(list)!=0 and num>=list[-1]:
#파이썬에서는
# &: 비교연산자,bitewise연산자
# and : 논리연산자, True,False 연산자
list.pop()
cnt +=len(list)
list.append(num)
print(cnt)
반응형
'[백준] Python,Java로 풀기📖 > 문자열' 카테고리의 다른 글
백준 1296(팀 이름 정하기 ) - Python(파이썬) - 문자열 (0) | 2022.06.01 |
---|---|
백준 9012(괄호) - Python(파이썬) - 문자열 (0) | 2022.05.27 |
백준 1120(문자열) - Python(파이썬) (0) | 2022.05.27 |
백준 1920( 수 찾기 ) - Python(파이썬) (0) | 2022.05.13 |
백준 15829(Hashing)-Python(파이썬) (0) | 2022.05.12 |