10773-0
質問する
ロコド機長の
ヒョンミンがお金を管理するのを手伝う過程で、残念なことにいつも忙しくて、ヒョンはお金を誤って呼ぶ事故をよく犯します.
宰賢は間違った数字を叫ぶたびに0を叫んで、最近の
このようにすべての数字を書いた後の数字の和を知りたい.渽民を助けましょう!
入力
最初の行は整数Kを与える.(1 ≤ K ≤ 100,000)
その後、K行に整数を与えます.整数には0~1000000の値があり、整数が0の場合は最後に書き込まれた数値が消去され、そうでない場合は対応する数値が書き込まれます.
整数が0の場合に消去できることを保証します.
しゅつりょく
民が最終的に書いた数字とを出力します.最終的に得られた数の和は231−1以下の整数である.
Solution
Python
K = int(input())
num = []
for i in range(K):
temp = int(input())
if temp == 0:
num.pop()
else:
num.append(temp)
sum = 0
for i in num:
sum = sum + i
print(sum)
修行時間が長すぎる.appendとpopの実行時間は長いようです.C++
코드를 입력하세요
Java
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
Stack <Integer> input = new Stack <>();
int sum = 0;
for(int i=0; i<N; i++) {
int temp = scan.nextInt();
if(temp == 0) {
input.pop();
}
else {
input.push(temp);
}
}
while(!input.empty()) {
sum = sum + input.pop();
}
System.out.println(sum);
}
}
java.utilのStackパッケージを使用しており、実行時間が長すぎます.次のスタック問題ではこれを使わずに問題を解きましょう.for(into:input){sum+=o}で和を求めることができます.
Pythonのfor a in listのような方法です.
Reference
この問題について(10773-0), 我々は、より多くの情報をここで見つけました https://velog.io/@sysh9498/백준-10773-제로テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol