목록문제/백준_파이썬 (155)
sm 기술 블로그
import java.util.*; import java.io.*; import java.math.BigInteger; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Stack stack = new Stack(); int K = sc.nextInt(); int result = 0; for (int i = 0; i < K; i++) { int N = sc.nextInt(); if(N == 0) stack.pop(); else stack.add(N); } for(int val : stack) { result += val; } System.out.println(result); } } 문제요약 재..
import sys input = sys.stdin.readline K = int(input()) stack = [] result = 0 for _ in range(K): N = int(input()) if N == 0 : stack.pop() else : stack.append(N) print(sum(stack)) 문제요약 재민이가 잘못 된 수를 외치면 0을 외쳐서 지우게 함. 재민이가 적은 수의 합을 알아보자 설명 아주 간단한 문제이다. 0이 들어오면 스택에서 꺼내면 된다. if N == 0 : stack.pop() else : stack.append(N) 만약 0이 들어오면 pop으로 마지막 수를 지우고 그게 아니면 값을 집어 넣는다. print(sum(stack)) sum 함수를 통해 stack ..
import sys input = sys.stdin.readline N = int(input()) stack = [] result = "" for _ in range(N): S = input() tmp = S.split() num = 0 if len(tmp) == 1: S = tmp[0] elif len(tmp) == 2: S = tmp[0] num = int(tmp[1]) if S == "push": stack.append(num) elif S == "size": result += str(len(stack)) + "\n" elif S == "empty": if len(stack) == 0: result += str("1") + "\n" else: result += str("0") + "\n" elif ..
import sys input = sys.stdin.readline N = int(input()) road = list(map(int, input().split())) city = list(map(int, input().split())) result = 0 start = 0 for i in range(1, len(city)): if (i == len(city)-1): for j in range(start, len(road)): result += road[j] * city[start] elif (city[start] > city[i]): for j in range(start, i): result += road[j] * city[start] start = i else: continue print(result..