IT/코딩테스트

[CodeUp] 3117 : 0은 빼!

_KH_ 2025. 6. 5. 17:47

 

작성한 한글 코딩

스택 라이브러리 import
	랜덤 객체 생성
	
	횟수를 담을 변수 선언
	K(횟수 값)로 위 변수 초기화
	합을 저장할 변수 선언
	
	스택 객체 생성
	
	for문으로 k만큼 반복하면서
	0부터 100 사이의 수를 무작위로 입력받음
	
	(만약 0이 나오면) {
		n-1번째 정수를 pop
	}
	0이 아니면 {
		연달아 스택에 push함
	}
	
	(스택이 비어있지 않다면) {
		스택을 돌면서 모두 꺼냄
		모든 정수의 합을 더함
	}
	sout(정수 합);
}

해당 한글 코딩에는 랜덤 생성해놨는데 코드업 돌리니까 자꾸 출력결과 다르다고 틀려서 정수 K개만큼 입력받는 걸로 수정

 

작성한 코드

package stack;

import java.util.Scanner;
import java.util.Stack;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		//System.out.print("정수 입력 >>");
		int sum = 0;
		
		Stack<Integer> stack = new Stack<Integer>();
		
		  int K = sc.nextInt(); 
	        for (int i = 0; i < K; i++) {
	            int num = sc.nextInt();

			if(num == 0) {
			//	System.out.println("0 발생!");
			//	System.out.print(num+" ");
				stack.pop();
			} else { // 0이 아닌 숫자가 나왔다면
				stack.push(num);
			//	System.out.print(num+" ");
			}
		}
		if(!stack.isEmpty()) {
			for(int v : stack) {
				sum += v;
			}
		}
		System.out.println(sum);
	}
}

 

 스택을 생각하니 어렵지 않았다!!