알고리즘
[백준, 자바, 1392번] 노래 악보
hminor
2024. 1. 8. 11:41
반응형
풀이
- 해당 문제를 처음 보았을 때 무슨 말이야 했는데
- 단순히 질문하는 시간에 몇 번째 노래가 나오고 있는지 물어보는 문제로
- 우선 노래 시간을 배열에 추가할 때 입력값 + 누적값 -1을 추가하여 셋팅한 다음
- 2중 for문으로 입력된 질문 시간에 따라
- 질문 시간이 특정 배열의 시간보다 작거나 같다면 출력하는 식으로 해결
import java.io.*;
import java.util.*;
public class 노래악보 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
Integer n = Integer.parseInt(st.nextToken());
Integer q = Integer.parseInt(st.nextToken());
ArrayList<Integer> n_li = new ArrayList<>(n);
Integer x = 0;
for (int i = 0; i < n; i++) {
Integer z = Integer.parseInt(br.readLine());
n_li.add(z+x-1);
x += z;
}
for (int i = 0; i < q; i++) {
Integer Q = Integer.parseInt(br.readLine());
for (int j = 0; j < n; j++) {
if (Q <= n_li.get(j)) {
System.out.println(j+1);
break;
}
}
}
}
}