백준/구현

10773 제로

have a good time 2021. 10. 18. 20:02

https://www.acmicpc.net/problem/10773

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net

 

 

 

아래 코드처럼, 먼저 입력으로 a[k]를 받아 놓으면, 맨 마지막에 만약 0을 입력 받았으면 앞에 있는 값을 지우지 못하고, 그냥 가르키는 상태로 끝나게 된다. 그래서 제대로 작동 안됨.

 

만약 내 코드가 잘 작동 안되면 직접 메모장에 for문 돌려가면서 계산 해보기

 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	    	int N = Integer.parseInt(br.readLine());
	    	
	    	int a[] = new int[N];
	    	
	    	int k=0;
	    	
	    	for(int i=0; i<N; i++) {
	    		
	    	
	    		
	    		a[k] = Integer.parseInt(br.readLine());
	    		
	    		if(a[0]==0) continue;
	    		if(a[k]==0) {
	    			k-=1;
	    		}else {
	    			k+=1;
	    		}
	    	}

완성 다 안함