[BOJ] 2870: ์ˆ˜ํ•™์ˆ™์ œ (JAVA)
ยท
์ฝ”๋”ฉํ…Œ์ŠคํŠธ/Algorithm
๋ฐฑ์ค€ 2970: ์ˆ˜ํ•™์ˆ™์ œ ํ’€์ด ์ด ๋ฌธ์ œ๋Š” ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋กœ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.๊ฐ ์ค„์€ ์ตœ๋Œ€ 100๊ธ€์ž์ด๊ณ , ํ•ญ์ƒ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. 100๊ธ€์ž๊ฐ€ ๋ชจ๋‘ ์ˆซ์ž๋กœ ์ฑ„์›Œ์ ธ์žˆ๋‹ค๋ฉด int์™€ long์˜ ๋ฒ”์œ„๋ฅผ ํ›Œ์ฉ ๋„˜์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.NumberFormat ์—๋Ÿฌ๋Š” ์—ฌ๊ธฐ์„œ ๋ฐœ์ƒํ–ˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿผ ๋ฌธ์ž๋กœ ํ•ด๊ฒฐ์„ ํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ฃผ์˜ํ•ด์•ผํ•  ์ ์€ 000001 ์ด ๋‚˜์˜ฌ ๊ฒฝ์šฐ 1๋กœ ์ถœ๋ ฅํ•ด์•ผํ•œ๋‹ค.๊ทธ๋ž˜์„œ ๋ฌธ์ž๋ฅผ ๋„ฃ๊ธฐ ์ „์— ์ˆซ์ž์˜ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ "0"์ด๋ผ๋ฉด,์•ž์—๋‚˜์˜ค๋Š” 0์„ ์ƒ๋žตํ•ด์ฃผ๋Š” Check0 ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์คฌ๋‹ค. Check0ํ•จ์ˆ˜ ๋‚ด์—์„œ 0์ด ๋‚˜์˜ค๋ฉด replaceํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ๊ณ„์†ํ•ด์„œ replaceํ•˜๋ฉด์„œ ์ˆซ์ž์˜ ๊ธธ์ด๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. static void Check0() { ..
[BOJ] 1940: ์ฃผ๋ชฝ(JAVA)
ยท
์ฝ”๋”ฉํ…Œ์ŠคํŠธ/Algorithm
๋ฐฑ์ค€ 1940: ์ฃผ๋ชฝ ํ’€์ด ์ œ๊ณต๋œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•ด์ค€ ๋’ค,left์™€ right๋กœ ํฌ์ธํŠธ ์ด๋™์„ ํ•ด์ฃผ๋ฉฐ ๊ตฌํ•ด์ฃผ๋ฉด ๋œ๋‹ค.ํˆฌํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด O(N^2)๋ฅผ O(N)๋งŒํผ ํšจ์œจ์ ์ด๋‹ค. right๋Š” ๋ฐฐ์—ด์˜ ๋งจ ๋’ค์—์„œ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ ,left๋Š” 0๋ฒˆ์งธ ๋ฐฐ์—ด๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ  1๏ธโƒฃ arr[left]+arr[right] 2๏ธโƒฃ arr[left]+arr[right] > M ์ผ ๊ฒฝ์šฐ, right--3๏ธโƒฃ arr[left]+arr[right] == M ์ผ ๊ฒฝ์šฐ, left++ right-- cnt++ ์ „์ฒด์ฝ”๋“œpackage ๋ฐฑ์ค€renew;import java.io.*;import java.util.*;public class ์‹ค๋ฒ„4_1940_์ฃผ๋ชฝ { static int N, M; static int arr[]; static boolean..
[BOJ] 17390: ์ด๊ฑด ๊ผญ ํ’€์–ด์•ผ ํ•ด! (JAVA)
ยท
์ฝ”๋”ฉํ…Œ์ŠคํŠธ/Algorithm
17390๋ฒˆ: ์ด๊ฑด ๊ผญ ํ’€์–ด์•ผ ํ•ด! [2, 5, 1, 4, 3]์„ ๋น„๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ฉด [1, 2, 3, 4, 5]์ด๋‹ค. www.acmicpc.net ํ’€์ด ์™„ํƒ์„ ๋Œ๋ฉด ๋‹น์—ฐํ•˜๊ฒŒ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ๊ฒƒ ๊ฐ™์•˜๋‹ค. 300,000 x 300,000์ด๋‹ˆ ๋‹น์—ฐํ•จ .. ๊ทธ๋ž˜์„œ ํˆฌํฌ์ธํ„ฐ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์ž๊พธ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ๊ฒƒ ..~ ๊ทธ๋ฆฌ๊ณ  ํˆฌํฌ์ธํ„ฐ๋„ ๊ฒฐ๊ตญ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋„์›€์„ ๋ฐ›์•„ ํ•ด๊ฒฐํ•œ ๋ฌธ์ œ ~! ๋ˆ„์ ํ•ฉ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด ๋” ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ˆ„์ ํ•ฉ์„ ๋‹ด์€ sum๋ฐฐ์—ด์—์„œ 0๋ถ€ํ„ฐ R๊นŒ์ง€์˜ ํ•ฉ์€ sum[R]์ด๋‹ˆ๊นŒ, sum[R]์—์„œ sum[L]์„ ๋นผ ์ค€ ๋‹ค์Œ arr[L]์„ ๋”ํ•˜๋ฉด ์ •๋‹ต ! ์ „์ฒด์ฝ”๋“œ package ๋ฐฑ์ค€renew; import java.io.*; import java.util.*; publi..
[BOJ] 1015: ์ˆ˜์—ด ์ •๋ ฌ (JAVA)
ยท
์ฝ”๋”ฉํ…Œ์ŠคํŠธ/Algorithm
1015๋ฒˆ: ์ˆ˜์—ด ์ •๋ ฌ P[0], P[1], ...., P[N-1]์€ 0๋ถ€ํ„ฐ N-1๊นŒ์ง€(ํฌํ•จ)์˜ ์ˆ˜๋ฅผ ํ•œ ๋ฒˆ์”ฉ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ˆ˜์—ด์ด๋‹ค. ์ˆ˜์—ด P๋ฅผ ๊ธธ์ด๊ฐ€ N์ธ ๋ฐฐ์—ด A์— ์ ์šฉํ•˜๋ฉด ๊ธธ์ด๊ฐ€ N์ธ ๋ฐฐ์—ด B๊ฐ€ ๋œ๋‹ค. ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ B[P[i]] = A[i]์ด๋‹ค. ๋ฐฐ์—ด A๊ฐ€ ์ฃผ www.acmicpc.net ํ’€์ด ์˜ค๋ฆ„์ฐจ์ˆœ/๋‚ด๋ฆผ์ฐจ์ˆœ์„ ํ•  ๋•Œ, ์กฐ๊ฑด ๋ถ„๊ธฐ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด PriorityQueue์— Comparator๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ๋œ๋‹ค. package ๋ฐฑ์ค€renew; import java.io.*; import java.util.*; public class ์‹ค๋ฒ„4_1015_์ˆ˜์—ด์ •๋ ฌ { static int arr[]; static int ans[]; public static void main(String[] args)..
[BOJ] 15688: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 5
ยท
์ฝ”๋”ฉํ…Œ์ŠคํŠธ/Algorithm
15688๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 5 ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” ์ ˆ๋Œ“๊ฐ’์ด 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋ฉฐ, ๊ฐ™์€ ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์ค‘๋ณต๋  ์ˆ˜๋„ ์žˆ๋‹ค. www.acmicpc.net Array์™€ List ์ •๋ ฌ์‹œ ๊ฐ’์ด ๋„ˆ๋ฌด ๋ณต์žกํ•˜์ง€ ์•Š๋‹ค๋ฉด .. Arrays.sort()๊ฐ€ ๋” ํšจ์œจ์ ์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ์•Œ์•˜๋‹ค ..! Array๋กœ ๋ฌธ์ œ ํ’€๊ณ  List์™€ PrioirtyQueue์‚ฌ์šฉํ•ด์„œ ํ’€์–ด๋ดค๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋–ด๋‹ค ใ…‹ใ…‹ ๊ถ๊ธˆํ•ด์„œ ์งˆ๋ฌธ๊ฒŒ์‹œํŒ์— ๋“ค์–ด๊ฐ€๋ณด๋‹ˆ ์ด๋Ÿฐ ๊ฐ•๊ฐ™์€ ๊ธ€์ด ~ ์šฐ์„ , ์‹œ๊ฐ„ ๋ณต์žก๋„๋ผ๋Š” ๊ฒƒ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ฌดํ•œํžˆ ์ปค์ง์— ๋”ฐ๋ผ ์–ด๋–ค ์‹์— ๋น„๋ก€ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด์ง€, ์ ˆ๋Œ€์ ์ธ ์‹œ๊ฐ„์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์•„..
[BOJ] 3273: ๋‘ ์ˆ˜์˜ ํ•ฉ (JAVA)
ยท
์ฝ”๋”ฉํ…Œ์ŠคํŠธ/Algorithm
3273๋ฒˆ: ๋‘ ์ˆ˜์˜ ํ•ฉ n๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์–‘์˜ ์ •์ˆ˜ a1, a2, ..., an์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์žˆ๋‹ค. ai์˜ ๊ฐ’์€ 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1000000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ž์—ฐ์ˆ˜ x๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ai + aj = x (1 ≤ i < j ≤ n)์„ ๋งŒ์กฑํ•˜๋Š” www.acmicpc.net ํ’€์ด ํˆฌํฌ์ธํ„ฐ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์€ ๋‹ค์Œ, Collections.sort๋กœ ์ •๋ ฌํ•ด ์คฌ๋‹ค. (A, B)๋ผ๋Š” ์ˆ˜ ์ผ๋•Œ B๋Š” ํ•ญ์ƒ A๋ณด๋‹ค ํฌ๊ณ , ์ค‘๋ณต๋œ ์ˆซ์ž๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด A๋ฅผ ์ง€์ •ํ•ด์ค€ ๋‹ค์Œ A์ดํ›„ index๋ถ€ํ„ฐ list๋๊นŒ์ง€ ์ด๋ถ„ํƒ์ƒ‰์„ ํ•ด์ฃผ๋ฉด์„œ B๋ฅผ ์ฐพ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์—ญ์‹œ ์ •๋ ฌ๋˜์–ด ์žˆ์„ ๋•Œ, ๊ฐ’์„ ์ฐพ๋Š” ๊ฑด ์ด๋ถ„ํƒ์ƒ‰์ด ๐Ÿ‘๐Ÿป package ๋ฐฑ์ค€renew;..