Tiny Bunny [CodeUp] 3117 : 0은 빼! - 솜님의 블로그
솜님의 블로그
카테고리
작성일
2024. 11. 19. 02:30
작성자
겨울솜사탕
문제 설명

당신의 상관은 당신이 작년에 회사의 실적에 얼마나 도움이 되었는지 횟수를 세었다.
불행히도 당신의 상관은 때때로 횟수를 틀리게 읽는다.
다행히도 당신의 상관은 잘못된 숫자를 읽은 것을 인식하면 ‘zero’라고 말한다.
이는 ‘직전의 숫자는 무시한다’는 것을 의미한다.

불행히도 당신의 상관은 실수를 반복할 수 있고, 매 실수마다 ‘zero’라고 말한다.
예를 들면 당신의 상관이 ‘One, three, five, four, zero, zero, seven, zero, zero, six’라고 말한 것은
7을 의미하는 것인데 다음의 표를 보면 알 수 있다.

상관의 명령 현재 숫자 설명
"one, three, five, four" 1, 3, 5, 4 4개의 숫자를 기록
"zero, zero" 1, 3 마지막 두 숫자를 삭제
"seven" 1, 3, 7 이전의 숫자 끝에 7을 추가
"zero, zero" 1 마지막 두 숫자를 삭제
"six" 1, 6 마지막 남은 숫자들, 합은 7

어느 순간이나 당신의 상관은 ‘zero’라고 말할 수 있으며,
만약 모든 숫자들이 무시되면 그 합은 0이 된다. 

상관이 말하는 문구를 입력받아 정확한 합을 구하는 프로그램을 작성하시오.

 

 

package test01;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class code3117 { // 3117 : 0은 빼!
	
	public static void main(String[] args) {
		// 입력 받기 위한 Scanner 생성
		Scanner sc = new Scanner(System.in);
		
		// 정수 k 입력받는다 (입력 받을 줄 수)
		System.out.print("입력할 줄 수 입력 : ");
		int k = sc.nextInt();
		
		// 입력받는 데이터를 저장할 List 선언
		List<Integer> nums= new ArrayList<Integer>();
		
		// 입력받은 정수가 1 ~ 100000 일때 실행
		if(1<=k && k<=100000) {
			
			// 정수 입력받기
			for(int i=0; i<k; i++) {
				System.out.print("정수 입력 : ");
				int num = sc.nextInt();
				
				// 만약 입력 값이 0이라면 이전 값 제거
				if(num == 0) {
					nums.remove(nums.size()-1);
				}
				else { //아니라면 list 저장
					nums.add(num);
				}
			}
		}
		
		// 총 합 더하기
		int sum=0;
		for(int num:nums) {
			sum += num;
		}
		
		// 합계 출력
		System.out.println(sum);	
	}
	
}