알고리즘 풀이
[백준]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로 바꾸는 방법을 찾느라 애를 먹었다. 정작 문제를 푸는 방법은 빠르게 잘 생각해놓고 기본적인 것들을 놓쳐서 시간을 낭비했다. 복습이 중요하다는것을 매번 느낀다.