알고리즘 풀이

[백준]10810번: 공 넣기 - java 풀이

코디드 2023. 4. 10. 23:07

 

배열 + StringBuilder 풀이)

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		
		int N = Integer.parseInt(st.nextToken());
		int M = Integer.parseInt(st.nextToken());
		
		StringBuilder sb = new StringBuilder();
		
		int[] arr = new int[N];
		int idx2=0;
		
		for(int idx=0; idx<M; idx++) {
			st = new StringTokenizer(br.readLine(), " ");
			
			int i = Integer.parseInt(st.nextToken());
			int j = Integer.parseInt(st.nextToken());
			int k = Integer.parseInt(st.nextToken());
			
			for(idx2=i; idx2<=j; idx2++) {
				arr[idx2-1] = k;  //0=1, 1=2, 2=1, 3=1, 4=0 
			}
			
		}
		for(int i=0; i<N; i++) {
			sb.append(arr[i]+" ");
		}
		System.out.println(sb);
	}
}

 

 

 

 

 


배열 + BufferedWriter 풀이)

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		
		int N = Integer.parseInt(st.nextToken());
		int M = Integer.parseInt(st.nextToken());
		
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int[] arr = new int[N];
		
		for(int idx=0; idx<M; idx++) {
			st = new StringTokenizer(br.readLine(), " ");
			
			int i = Integer.parseInt(st.nextToken());
			int j = Integer.parseInt(st.nextToken());
			int k = Integer.parseInt(st.nextToken());
			
			int idx2=0;
			
			for(idx2=i; idx2<=j; idx2++) {
				arr[idx2-1] = k;
			}
				
		}
		br.close();
		
		for(int result : arr) {
			bw.write(result + " ");
		}
		bw.flush();
		bw.close();
	}
}

 

for문 안에서 st = new StringTokenizer(br.readLine(), " "); 을 안넣어서 한참 헤매고,

 

Integer.valueOf(k)==null

 

int[] 은 null값을 0으로 가져가는 것을 까먹어서, int 가 null 인 경우를 표현하려고 int를 Integer로 바꾸는 방법을 찾느라 애를 먹었다.  정작 문제를 푸는 방법은 빠르게 잘 생각해놓고 기본적인 것들을 놓쳐서 시간을 낭비했다. 복습이 중요하다는것을 매번 느낀다.