알고리즘/코드트리
코드트리/ 최대로 겹치는 구간, 지점
발빠진 쥐
2024. 7. 25. 01:59
최대로 겹치는 구간
30XP기본문제
정답률 61% · 제출 2,605회 · 예상 소요 시간 25분
21아쉬워요
1 StarEmpty내 리스트에 추가
1차원 직선 상에 n개의 선분이 놓여 있습니다. 가장 많이 겹치는 구간에서는, 몇 개의 선분이 겹치는지를 구하는 프로그램을 작성해보세요. 단, 겹치는 구간을 찾는 문제이므로 끝점에서 닿는 경우는 겹치는 것으로 생각하지 않습니다.
입력 형식
첫 번째 줄에는 n이 주어집니다.
두 번째 줄부터는 n개의 줄에 걸쳐 선분의 정보 (x1, x2)가 공백을 사이에 두고 주어집니다.
- 2 ≤ n ≤ 100
- -100 ≤ x1 < x2 ≤ 100
출력 형식
최대로 겹치는 구간에서, 몇 개의 선분이 겹치는 지를 출력합니다.
입출력 예제
예제1
입력:
3
1 5
4 6
2 4
출력:
2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 여기에 코드를 작성해주세요.
Scanner sc = new Scanner (System.in);
int n = sc.nextInt();
int offset = 100;
int [] arr = new int[201];
for(int i =0; i<n; i++){
int a = sc.nextInt();
int b = sc.nextInt();
for(int j=a+offset; j<b+offset; j++){
arr[j]++;
}
}
int max = 0;
for(int i = 0; i<201; i++){
if(max < arr[i]){
max = arr[i];
}
}
System.out.print(max);
}
}
최대로 겹치는 지점
10XP쉬움
정답률 73% · 제출 1,550회 · 예상 소요 시간 7분
16아쉬워요
1 StarEmpty내 리스트에 추가
1차원 직선 상에 n개의 선분이 놓여 있습니다. 가장 많이 겹치는 곳에서는, 몇 개의 선분이 겹치는지를 구하는 프로그램을 작성해보세요. 단, 끝점에서 닿는 경우에도 겹치는 것으로 봅니다.
입력 형식
첫 번째 줄에는 n이 주어집니다.
두 번째 줄부터는 n개의 줄에 걸쳐 선분의 정보 (x1, x2)가 공백을 사이에 두고 주어집니다.
- 2 ≤ n ≤ 100
- 1 ≤ x1 < x2 ≤ 100
출력 형식
최대로 겹치는 지점에서, 몇 개의 선분이 겹치는 지를 출력합니다.
입출력 예제
예제1
입력:
3
1 5
4 6
2 4
출력:
3
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 여기에 코드를 작성해주세요.
Scanner sc = new Scanner (System.in);
int n = sc.nextInt();
int offset = 100;
int [] arr = new int[201];
for(int i =0; i<n; i++){
int a = sc.nextInt();
int b = sc.nextInt();
for(int j=a+offset; j<=b+offset; j++){ //겹치는 "지점"이기 때문에 =이 붙음
arr[j]++;
}
}
int max = 0;
for(int i = 0; i<201; i++){
if(max < arr[i]){
max = arr[i];
}
}
System.out.print(max);
}
}