BOJ_B1_3985
๐ [B1_3985] ๋กค ์ผ์ดํฌ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
static StringTokenizer st;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// ๋กค ์ผ์ดํฌ ๊ธธ์ด
int L = Integer.parseInt(br.readLine());
// ๋ฐฉ์ฒญ๊ฐ์ ์
int N = Integer.parseInt(br.readLine());
// ์์๊ณผ ๋ ๊ฐ ์ ์ฅํ๋ ๋ฐฐ์ด
int[][] arr = new int[N+1][2];
// ์กฐ๊ฐ ๋ฐ์์ง ์ฒดํฌ
boolean[] check = new boolean[L+1];
// ์ ์ผ ๋ง์ ์กฐ๊ฐ์ ๋ฐ์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ๊ณ ์๋ ๋ฐฉ์ฒญ๊ฐ์ ๋ฒํธ
int max_index = -1;
int index = 0;
// ์ ์ผ ๋ง์ ์กฐ๊ฐ์ ๋ฐ์ ๋ฐฉ์ฒญ๊ฐ์ ๋ฒํธ
int real_max = -1;
int cntt = 0;
int res = 0;
for(int i=1; i<=N; i++){
st = new StringTokenizer(br.readLine(), " ");
// start
int start = Integer.parseInt(st.nextToken());
// end
int end = Integer.parseInt(st.nextToken());
arr[i][0] = start;
arr[i][1] = end;
// ์ ์ผ ๋ง์ด ๋ฐ์ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ ๋ฐฉ์ฒญ๊ฐ ๋ฒํธ ๊ตฌํ๊ธฐ
int minus = end - start;
if(max_index == minus){
continue;
}
max_index = Math.max(max_index, minus);
if(max_index == minus){
index = i;
}
cntt = 0;
// ์กฐ๊ฐ ์ฒดํฌ ํด์ฃผ๊ธฐ
for(int j=start; j<=end; j++){
if(!check[j]) {
check[j] = true;
cntt++;
}
else if(check[j]){
continue;
}
}
if(real_max == cntt){
continue;
}
real_max = Math.max(real_max, cntt);
if(real_max == cntt){
res = i;
}
}
sb.append(index).append("\n").append(res);
System.out.println(sb);
}
}
๐ค ๋์ ์๊ฐ
๋ฌธ์ ๊ฐ ์ํ๋ ์กฐ๊ฐ์ด ์๋๋ฐ ์์๋๋ก ์กฐ๊ฐ์ ๋๋ ์ฃผ๋ค ๋ณด๋ ์์ ์ฌ๋์ด ์ํ๋ ์กฐ๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ ์์ ์ฌ๋์ด ๋จผ์ ๊ฐ์ ธ๊ฐ๋ ๋ฌธ์ ์ด๋ค.
์ฌ๊ธฐ์ ์ํ๋ ์กฐ๊ฐ์ผ๋ก ๋ค ๋ฐ๋๋ค๋ฉด ๊ฐ์ฅ ๋ง์ด ๋ฐ์ ๋ฐฉ์ฒญ๊ฐ์ ๋ฒํธ์ ์ค์ ๋ก ๊ฐ์ฅ ๋ง์ด ๋ฐ๋ ๋ฐฉ์ฒญ๊ฐ์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋๋ฐ
ํ๊ฐ์ง ์กฐ๊ฑด์ด ๋ ์กด์ฌํ๋ค. ๋ฐ๋ก ๋ฐ์ ์กฐ๊ฐ์ ์๊ฐ ๊ฐ๋ค๋ฉด ์ ์ ๋ฐ์ ๋ฐฉ์ฒญ๊ฐ์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค.
๋ ์ด ์กฐ๊ฑด์ ๊น๋จน๊ณ ์ ์๋์ง ํ๊ณ ์์๋ค..ใ
ใ
ใ
๊ทธ๋ฌ๋ ์งง์ ์๊ฐ๋์ ^^
์ํ๋ ์กฐ๊ฐ์ ๊ฐ์๋ start์ end์ ์ฐจ๋ฅผ ํตํด ๊ฐ์ฅ ํฐ ์๋ฅผ ๊ฐ์ง ๋ฐฉ์ฒญ๊ฐ์ index๋ฅผ ์ถ๋ ฅํด ์ฃผ์๊ณ
์ค์ ๋ก ๋ฐ์ ์กฐ๊ฐ์ ๊ฐ์๋ boolean ๋ฐฐ์ด์ ํตํด ๋ฐ์ ์กฐ๊ฐ์ ์ฒดํฌํด์ฃผ์ด์ ๊ฒน์น์ง ์๊ฒ ํด์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ๋ง์ ์กฐ๊ฐ์ ๋ฐ์ ๋ฐฉ์ฒญ๊ฐ์ index๋ฅผ ์ถ๋ ฅํด ์ฃผ์๋ค.
์ด๋ ต์ง ์์ ๋ฌธ์ ์๋ค.