본문 바로가기
Problem Solving/SWEA

[SWEA] 6485. 삼성시의 버스 노선

by 테리는당근을좋아해 2020. 2. 24.

문제

삼성시에 있는 5,000개의 버스 정류장은 관리의 편의를 위해 1에서 5,000까지 번호가 붙어 있다.

그리고 버스 노선은 N개가 있는데, i번째 버스 노선은 번호가 Ai이상이고,

Bi이하인 모든 정류장만을 다니는 버스 노선이다.

P개의 버스 정류장에 대해 각 정류장에 몇 개의 버스 노선이 다니는지 구하는 프로그램을 작성하라.

 

풀이방법

정류장 수만큼의 배열을 선언하고 0으로 초기화한다.

 

n줄에 걸쳐 ai와 bi가 입력되면 ai이상 bi이하의 정류장을 다니는 노선이 있다는 의미이므로

 

ai이상 bi이하의 배열 인덱스의 원소 값을 1증가 시켜준다. 

 

그런다음 p개의 정류장을 입력받고 해당하는 정류장의 노선 개수(인덱스의 원소값)를 출력해준다.

 

소스코드

package samsung;

import java.util.*;

public class s_6485 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int tc = sc.nextInt();
		
		for(int t = 1; t <= tc; t++) {
			int[] m = new int[5001];
			int n = sc.nextInt();
			
			for(int i = 0; i < n; i++) {
				int a = sc.nextInt();
				int b = sc.nextInt();
				for(int j = a; j <= b; j++) {
					m[j]++;
				}
			}
			int p = sc.nextInt();
			int[] result = new int[p];
			for(int i = 0; i < p; i++) {
				int tmp = sc.nextInt();
				result[i] = m[tmp];
			}
			
			System.out.print("#" + t + " ");
			for(int i = 0; i < p; i++) {
				System.out.print(result[i] + " ");
			}
			System.out.println();
		}
	}
}

 

출처

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWczm7QaACgDFAWn&categoryId=AWczm7QaACgDFAWn&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

댓글