728x90
✅ 문제 요약
N개의 Ai~Bi 버스 노선이 주어지고 P개의 버스가 주어졌을 때 각 버스가 지나다니는 노선 수를 출력하라
🤔 문제 풀이
문제설명이 좀 어렵게 적혀있긴 하지만 간단히 말해서
"N개의 범위가 주어지고 P개의 수가 주어졌을 때 각 P가 속하는 범위 개수를 구하라"
정도로 이해하면 될 것 같다.
N개의 범위를 저장하기 위해 ArrayList<int[]> list 를 사용했다.
P개의 버스를 받을 때마다 Pi 버스를 list.get(i)[0] ~ list.get(i)[1] 사이에 속하는지 탐색하고
속한다면 count + 1 해주었다.
전체 범위 탐색이 끝나면 count를 answer을 담는 StringBuilder 에 저장하고 다음 버스 탐색을 시작했다.
🚨CODE
import java.util.*;
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int testCase = Integer.parseInt(br.readLine());
for (int t = 1; t <= testCase; t++) {
int n = Integer.parseInt(br.readLine());
ArrayList<int[]> list = new ArrayList<>();
StringBuilder sb = new StringBuilder();
for(int i = 0; i<n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
list.add(new int[] {a,b});
}
sb.append(String.format("#%d ", t));
int p = Integer.parseInt(br.readLine());
for(int i = 0; i<p; i++) {
int bus = Integer.parseInt(br.readLine());
int count = 0;
for(int j = 0; j<list.size(); j++) {
if(list.get(j)[0] <= bus && bus <= list.get(j)[1])
count++;
}
sb.append(count).append(" ");
}
bw.write(String.format("%s\n", sb.toString()));
}
bw.flush();
}
}
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[JAVA-D3] SWEA 3499 - 퍼펙트 셔플 (1) | 2024.05.01 |
---|---|
[JAVA-SW_TEST_SAMPLE] SWEA 1767 - 프로세서 연결하기 (0) | 2024.05.01 |
[JAVA-D3] SWEA 3431 - 준환이의 운동관리 (0) | 2024.05.01 |
[JAVA-D3] SWEA 1221 - GNS (1) | 2024.05.01 |
[JAVA-L2] 프로그래머스 - 올바른 괄호 (1) | 2024.04.28 |