๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Coding Test ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 3์žฅ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฌธ์ œ

by ๋น„์†Œ์•ผ 2022. 11. 20.
728x90

 

# 1 ๊ฐ ์ž๋ฆฌ ์ˆซ์ž์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ java

 

์ˆซ์ž์˜ ๊ฐœ์ˆ˜ N

N๊ฐœ์˜ ์ˆซ์ž์˜ ๋‚˜์—ด

 

5

54321

 

54321/10000 == 5

54321%10000 == 4321

4321/1000 == 4

4321%1000 == 321

์ด๋Ÿฐ ๋กœ์ง์œผ๋กœ ํ’€๋ฉด ๋ณต์žกํ•˜๋‹ค. ๊ตฌํ˜„ํ•˜๊ธฐ๋„ ์–ด๋ ค์šธ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฌ๋‚˜, ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๊ฒƒ์€ N์ด 100์ด๋ฏ€๋กœ 100์ž๋ฆฌ ์ˆ˜๋ฅผ int, long ํ˜•์œผ๋กœ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ž๋ฃŒํ˜•์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์—

 

๊ทธ๋Ÿฌ๋ฏ€๋กœ String์œผ๋กœ ๋ฐ›์•„์•ผํ•œ๋‹ค.

๋ฌธ์ž์—ด "54321"์˜ ๊ฐ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋ฝ‘์•„๋‚ด๋ ค๋ฉด toCharArray() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœํ•˜์—ฌ ๋ฌธ์žํ˜• ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค.

๊ทธ๋Ÿฌ๊ณ ๋‚˜์„œ ๋ฌธ์ž ์ˆซ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ์œ„ํ•ด '1' -> 1 ์•„์Šคํ‚ค์ฝ”๋“œ๋ฅผ ์ด์šฉํ•œ๋‹ค.

๋ฌธ์ž'1'์„ ์ˆซ์ž1๋กœ ๋ณ€ํ™˜

'1' - 48 ๋˜๋Š” '1' - '0'

 

์‹ค์ œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์ž˜๋ชป๋œ ๊ฑธ ์ค‘๊ฐ„์— ๊นจ๋‹ฌ์•˜์„ ๋•Œ ๋ฐ”๊พธ๊ธฐ ์‰ฝ์ง€ ์•Š๋‹ค. ๋‹นํ™ฉํ•˜๊ณ  ์‹œ๊ฐ„์ด ์ด‰๋ฐ•ํ•˜๊ธฐ ๋•Œ๋ฌธ์—

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฝ”๋”ฉ ํ•˜๊ธฐ์ „ ๋ฌธ์ œ๋ฅผ ๋จผ์ € ์™„๋ฒฝํžˆ ๋ถ„์„ํ•˜์ž!

 

์ดํ•ด๋งŒ ํ•˜๊ณ  ์‹ค์ œ๋กœ ์ฝ”๋”ฉํ•ด๋ณด์ง€ ์•Š์œผ๋ฉด ์•ˆ๋œ๋‹ค.

 

# 2 ํ‰๊ท  ๊ตฌํ•˜๊ธฐ java

์ผ์ผ์ด ํ•˜๋‚˜์”ฉ ๊ณ„์‚ฐํ•˜์ง€ ๋ง๊ณ , ๊ทœ์น™์„ ๋ฐœ๊ฒฌํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ณต์‹์œผ๋กœ ์ •๋ฆฌํ•ด์„œ ๊ณ„์‚ฐํ•œ๋‹ค.

 

# 3 ๊ตฌ๊ฐ„ํ•ฉ ๊ตฌํ•˜๊ธฐ 1 java

์งˆ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌํ™” ๊ณ ๋ ค

์›๋ณธ ๋ฐฐ์—ด ๊ณ ์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํ•ฉ๋ฐฐ์—ด ์ด์šฉํ•˜์—ฌ ๊ตฌ๊ฐ„ํ•ฉ ๊ตฌํ•˜๊ธฐ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ค„์ด์ž, ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ X ์‹œ๊ฐ„๋ณต์žก๋„ nxn

์˜ˆ์‹œ๋ณด๊ณ  ์ผ๋ฐ˜์ ์ธ ์ˆœ์„œ์™€ ์ธ๋ฑ์Šค ์ฐจ์ด๋„ ์ฃผ์˜ํ•˜์ž

 

๋ฐ›๋Š” ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ BufferedReader ์ด์šฉ

์—ฌ๋Ÿฌ ๊ฐœ ์ˆซ์ž ๋ฐ›์œผ๋ฏ€๋กœ 10๋งŒ๊ฐœ intํ˜• ๋ณ€์ˆ˜ ๊ฐ๊ฐ์œผ๋กœ ๋ฐ›๊ธฐ ๋ณด๋‹ค๋Š” StringTokenizer ์ด์šฉ

ํฌ๊ธฐ๊ฐ€ ํฌ๋ฏ€๋กœ ์Šต๊ด€์ ์œผ๋กœ long

 

#4 ์—ฐ์†๋œ ์ž์—ฐ์ˆ˜์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ java

์ˆซ์ž์˜ ๊ฐœ์ˆ˜ N์ด ํฌ๋ฏ€๋กœ O(nlogn)๋„ ์œ„ํ—˜, ๊ทธ๋Ÿฌ๋ฏ€๋กœ O(n) ์‹œ๊ฐ„๋ณต์žก๋„์ธ ํˆฌ ํฌ์ธํ„ฐ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ ํ‘œํ˜„

2n == n

 

์ดˆ๊ธฐํ™”

sum = 1 // start_index์™€ end_index๊ฐ€ ํ‘œํ˜„ํ•˜๋Š” ์ˆ˜์˜ ๋ฒ”์œ„์˜ ํ•ฉ, ๋งจ ์ฒ˜์Œ์—๋Š” ๋‘˜๋‹ค 1์„ ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ ์ดํ•ฉ์€ 1

count = 1// ์ž๊ธฐ ์ž์‹  ํ•˜๋‚˜๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ํ‘œํ˜„

 

ํˆฌ ํฌ์ธํ„ฐ ์ด๋™ ์›์น™ // ๋ญ˜ ๋จผ์ € ํ•˜๋Š” ์ง€ ์ˆœ์„œ ์ฃผ์˜ 

sum == N // count++; end_index++; sum = sum + end_index; 

sum > N // sum = sum - start_index; start_index++;

sum <N // end_index++; sum = sum + end_index;

 

end_index == N์ด๋ฉด start_index ๋นผ๊ณ  end_index ํ•œ ๊ฐœ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๊ฒฝ์šฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋” ์ด์ƒ ๊ฒ€์‚ฌํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ ธ  while๋ฌธ์˜ ์กฐ๊ฑด์‹์€ end_index != N์ด๋‹ค.

 

#5 ์ฃผ๋ชฝ์˜ ๋ช…๋ น

2๊ฐœ์˜ ํ•ฉ์„ ํฌ๊ธฐ ๋น„๊ตํ•˜์—ฌ์•ผ ํ•˜๋ฏ€๋กœ ์ •๋ ฌ๊ณผ ํˆฌํฌ์ธํ„ฐ ์ด์šฉํ•ด์•ผํ•œ๋‹ค.

์ •๋ ฌ์€ ์‹œ๊ฐ„๋ณต์žก๋„ O(nlogn), ํˆฌ ํฌ์ธํ„ฐ๋Š” O(n) ์ด๋ฏ€๋กœ ์ด ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(nlogn)

 

์ดˆ๊ธฐํ™”

int i = 0; // ์ตœ์†Ÿ๊ฐ’

int j = N-1; // ์ตœ๋Œ“๊ฐ’

int count = 0 // ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜

 

ํˆฌ ํฌ์ธํ„ฐ ์ด๋™ ์›์น™

A[i] + A[j] == M // i++, j-- ์žฌ๋ฃŒ๋Š” ํ•œ๋ฒˆ ์‚ฌ์šฉํ•˜๋ฉด ๋˜ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ

A[i] + A[j] > M // j--

A[i] + A[j] < M // i++

 

Arrays.sort();

 

while๋ฌธ์˜ ์กฐ๊ฑด์‹์€ i<j ์ด์–ด์•ผ ํ•œ๋‹ค. i != j ๋Š” 7, 8์ผ๋•Œ ์„œ๋กœ ์—‡๊ฐˆ๋ ค์„œ ์•ˆ๋œ๋‹ค. ์ค‘๋ณต ๊ฒ€์‚ฌ

 

# 6 DNA ๋น„๋ฐ€๋ฒˆํ˜ธ (1)

์Šฌ๋ผ์ด๋”ฉ ์œ๋„์šฐ๋ž€? 2๊ฐœ์˜ ํฌ์ธํ„ฐ๋กœ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•œ ๋‹ค์Œ ์œ ์ง€ํ•œ ์ฑ„๋กœ ์ด๋™ํ•˜๋ฉฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜, O(n)

 

์กฐ๊ฑด A, C, G, T ๊ฐ ๋ฌธ์ž์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜

 

ex)์กฐ๊ฑด์€ 1, 0, 0, 1

์ „์ฒด ๋ฌธ์ž์—ด์€ GATA, ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 2

GA // T๊ฐ€ 1๊ฐœ ๋ถ€์กฑ, X

AT // A 1๊ฐœ, T 1๊ฐœ O

TA // A 1๊ฐœ, T 1๊ฐœ O

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 2๊ฐ€์ง€์ด๋‹ค.

 

์ฃผ์–ด์ง„ ์ „์ฒด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด์ธ ๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€ํฌ๊ธฐ๋Š” 1,000,000์ด์ง€๋งŒ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„ O(n)์ด๋‹ค.

๊ฐ€์šด๋ฐ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ์กด์— ์žˆ์—ˆ๋˜ ๊ฒƒ์ด๋ฏ€๋กœ, ๋งจ ์•ž๊ณผ ๋’ค์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๋ณ€ํ•˜๋ฏ€๋กœ ์ด๊ฒƒ๋งŒ ๊ฒ€์‚ฌํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

 

1. ๋งจ ์ฒ˜์Œ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ๊ฒ€์‚ฌ

2. ๋‹ค์Œ๋ถ€ํ„ฐ ํ•œ ์นธ ์”ฉ ์ด๋™ํ•˜๋ฉฐ ๊ฒ€์‚ฌ

 

# 7 DNA ๋น„๋ฐ€๋ฒˆํ˜ธ (2)

๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€ํฌ๊ธฐ๊ฐ€ 1๋ฐฑ๋งŒ์ด๋ฏ€๋กœ ์ž…๋ ฅ ๋ฐ›๋Š” ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ BufferedReader ์ด์šฉ,

์ผ์ผ์ด charํ˜• ๋ฐฐ์—ด ์š”์†Œ ํ•œ๊ฐœ์”ฉ ์ž…๋ ฅ ๋ฐ›๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•œ๋ฒˆ์— ๋ฐฐ์—ด ๊ฐ„ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•œ ์ค„๋กœ ์ž…๋ ฅ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ

StringTokenizer ์ด์šฉ

 

์ดˆ๊ธฐํ™”

int Result = 0; // ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ฆ‰, ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜

int[] checkArr = new int[4]; // ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ๋งŒ์กฑ ํ•ด์•ผํ•˜๋Š” ์กฐ๊ฑด

int[] myArr = new int[4]; // ํ˜„์žฌ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ๋งŒ์กฑํ•˜๋Š” ์กฐ๊ฑด

int checkSecret = 0; // ํ˜„์žฌ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด ๋งŒ์กฑํ•˜๋Š” ์กฐ๊ฑด์˜ ๊ฐœ์ˆ˜

char[] A; // ์ „์ฒด ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜

br.readLine().toCharArray() // ํ•œ ์ค„ ๋ฌธ์ž์—ด๋กœ ์ฝ์–ด์„œ ๋ฌธ์ž์—ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ฆ

 

Add(A[i]) // ๋ฌธ์ž์—ด ๋ฐฐ์—ด A์˜ i๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ์— ์ถ”๊ฐ€, ์ฆ‰ ๊ฒ€์‚ฌ ํฌํ•จ

// ์ˆœ์„œ ์ฃผ์˜

myArr[0]++;

if(myArr[0] == checkArr[0]) checkSecret++; // if๋ฌธ์˜ ์กฐ๊ฑด์‹ ์ฃผ์˜

 

Remove(A[i]) {

// ์ˆœ์„œ ์ฃผ์˜

if(myArr[0] == checkArr[0]) checkSecret--;

myArr[0]--;

}

 

1. ๋งจ ์ฒ˜์Œ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ๊ฒ€์‚ฌ

for(int i = 0; i<P; i++){

Add(A[i])

}

if(checkSecret == 4) Result++; // ๋งŒ์•ฝ ์ฒ˜์Œ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์ด 4๊ฐœ์˜ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋ฉด ๊ฒฝ์šฐ์˜ ์ˆ˜์— +1

2. ๋‹ค์Œ ๋ถ€ํ„ฐ ํ•œ ์นธ์”ฉ ์ด๋™ํ•˜๋ฉด ์„œ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ๊ฒ€์‚ฌ

for(int i = P; i<S; i++) { // ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ์˜ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ  ์žˆ๋Š” 2๊ฐœ์˜ ํฌ์ธํ„ฐ i, j ์ฃผ์˜, i๊ฐ€ ๋งจ ๋’ค, j๊ฐ€ ๋งจ ์•ž
int j = i - P; 

Add(A[i]); // ์ด๋ฏธ ๋งจ ์ฒ˜์Œ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ๊ฒ€์‚ฌ์—์„œ ์–‘ ๋ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์™ธํ•œ ๊ฐ€์šด๋ฐ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ฒ€์‚ฌ๋œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์—,

Remove(A[j]); // ์–‘ ๋๋งŒ ๊ฒ€์‚ฌํ•˜๋ฉด ๋œ๋‹ค.

if(checkSecret == 4) Result++; // 

}

 

# 8 ์Šคํƒ์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ˆ˜์—ด ๋งŒ๋“ค๊ธฐ

์Šคํƒ ํ›„์ž…์„ ์ถœ

1. ํ˜„์žฌ ์ˆ˜์—ด(์Šคํƒ)์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์ˆ˜ >= ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์ž์—ฐ์ˆ˜

๋™์•ˆ ๊ณ„์† push(), ๋งˆ์ง€๋ง‰์— pop() ํ•œ๋ฒˆ

2. ํ˜„์žฌ ์ˆ˜์—ด(์Šคํƒ) ์•ˆ์— ๋“ค์–ด ์žˆ๋Š” ์ˆ˜ < ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์ž์—ฐ์ˆ˜

๋™์•ˆ ๊ณ„์† pop()

if(ํ˜„์žฌ ์ˆ˜์—ด ์•ˆ์— ๋“ค์–ด ์žˆ๋Š” ์ˆ˜> ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ์ž์—ฐ์ˆ˜) ์ธ ๊ฒฝ์šฐ // pop()์œผ๋กœ ์ˆ˜์—ด์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ NO ์ถœ๋ ฅ, ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” push()์™€ pop()์œผ๋กœ ์ˆ˜์—ด์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

# 9 13 ์นด๋“œ๊ฒŒ์ž„

1๋ฒˆ ์นด๋“œ๊ฐ€ ๊ฐ€์žฅ ์œ„, N๋ฒˆ ์นด๋“œ๊ฐ€ ๊ฐ€์žฅ ์•„๋ž˜

๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋‚จ๋Š” ์นด๋“œ๋Š”?

 

์–‘์ชฝ์—์„œ ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ์ผ์–ด๋‚˜๋ฏ€๋กœ Queue ์ž๋ฃŒ๊ตฌ์กฐ ์ด์šฉ

Queue<Integer> myQueue = new LinkedList<>();

 

์นด๋“œ๊ฐ€ 1๊ฐœ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

 

# 10 14 ์ ˆ๋Œ“๊ฐ’ ํž™ ๊ตฌํ˜„ํ•˜๊ธฐ

์ ˆ๋Œ“๊ฐ’ ํž™์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์›๋ž˜ ์กด์žฌX, ๋ฌธ์ œ์—์„œ ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.

 

1. ์ ˆ๋Œ“๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’

2. ๊ฐ€์žฅ ์ž‘์€ ์ ˆ๋Œ“๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ฒฝ์šฐ, ๊ทธ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ ์ถœ๋ ฅ // ์ฆ‰, ์–‘์ˆ˜ ์™€ ์Œ์ˆ˜ ์ค‘์—์„œ ์Œ์ˆ˜๋ฅผ ์ถœ๋ ฅ

 

// ์ž…๋ ฅ์ด 0, 0์ด ์•„๋‹๋•Œ ๋กœ ๋‚˜๋ˆ„์–ด์ง

์ž…๋ ฅ์ด 0์ด๋ฉด ์ถœ๋ ฅ, ๊ทธ ์™ธ์ด๋ฉด ์ถ”๊ฐ€

ํž™์ด ํ……ํ…… ๋น„์–ด์žˆ๋Š” ๋ฐ, ์ž…๋ ฅ์ด 0์ด๋ฉด 0์ถœ๋ ฅ

 

์ง€๋ฌธ ์ฝ๊ณ  ๋‚˜์„œ ์ดํ•ดํ›„, ๋‚ด๊ฐ€ ๋งž๊ฒŒ ์ดํ•ดํ•œ ๊ฒƒ์ธ์ง€ ์•Œ๊ธฐ ์œ„ํ•ด ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด์„œ ๊ฒ€์‚ฌ

 

๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€ํฌ๊ธฐ N์ด 100,000 ์‹ญ๋งŒ์ด๋ฏ€๋กœ BufferedReader

 

์šฐ์„ ์ˆœ์œ„ ํ์˜ ์ •๋ ฌ ๊ธฐ์ค€ ์ •์˜

PriorityQueue<Integer> myQueue = new PriorityQueue<>((o1, o2) - >{

return ์ด ์–‘์ˆ˜์ด๋ฉด // 

์Œ์ˆ˜์ด๋ฉด // 

});

 

728x90