[문제]
당신의 상관은 당신이 작년에 회사의 실적에 얼마나 도움이 되었는지 횟수를 세었다.불행히도 당신의 상관은 때때로 횟수를 틀리게 읽는다.다행히도 당신의 상관은 잘못된 숫자를 읽은 것을 인식하면 ‘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이 된다.
상관이 말하는 문구를 입력받아 정확한 합을 구하는 프로그램을 작성하시오.
[풀이]
import java.util.Scanner;
public class ID3117 {
public static void main(String[] args) {
//배열 생성
int result[] = {};
//현재 배열 count 변수 생성
int count = 0;
//총합 변수 생성
int total = 0;
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
result = new int[n];
for (int i : result) {
n = scanner.nextInt();
//만약 0이 아니면 count+1 0이면 count-1
result[(n == 0) ? --count:count++] = n;
}
scanner.close();
// 총합을 구함
for(int a : result){
total += a;
}
//총합 출력
System.out.println(total);
}
}
728x90
'코딩 테스트' 카테고리의 다른 글
[프로그래머스 Level01] 정수 제곱근 판별 (0) | 2024.10.04 |
---|---|
java 자릿수 구하기 (0) | 2024.08.11 |