목록문제 (388)
sm 기술 블로그
import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int T = Integer.parseInt(br.readLine()); for (int i = 0; i < T; i++) { String[] S = br.readLine().split(""); Stack stack = new Stack(); for (int j = 0; j < S.length; j++) { ..
import sys input = sys.stdin.readline T = int(input()) for i in range(T): stack = [] a = input() for j in a: if j == '(': stack.append(j) elif j == ')': try: stack.pop() except: stack.append(1) break if not stack: print("YES") else: print("NO") 문제요약 괄호가 형식이 맞으면 YES를 아니면 NO를 출력하라. 설명 간단한 문제이다. 입력받은 값을 앞에서 부터 뽑아내면서 만약 '('가 나오면 스택에 값을 넣고 ')'가 나온다면 스택에 있는 값을 빼낸다. [만약 뒤에서 부터 진행한다면 ')'값을 넣고 '('을 빼야할 것..
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 ..