[BOJ] 2870: ์ˆ˜ํ•™์ˆ™์ œ (JAVA)
ยท
์ฝ”ํ…Œ/Algorithm
๋ฐฑ์ค€ 2970: ์ˆ˜ํ•™์ˆ™์ œ ํ’€์ด ์ด ๋ฌธ์ œ๋Š” ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋กœ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.๊ฐ ์ค„์€ ์ตœ๋Œ€ 100๊ธ€์ž์ด๊ณ , ํ•ญ์ƒ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ์ˆซ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. 100๊ธ€์ž๊ฐ€ ๋ชจ๋‘ ์ˆซ์ž๋กœ ์ฑ„์›Œ์ ธ์žˆ๋‹ค๋ฉด int์™€ long์˜ ๋ฒ”์œ„๋ฅผ ํ›Œ์ฉ ๋„˜์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.NumberFormat ์—๋Ÿฌ๋Š” ์—ฌ๊ธฐ์„œ ๋ฐœ์ƒํ–ˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿผ ๋ฌธ์ž๋กœ ํ•ด๊ฒฐ์„ ํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ฃผ์˜ํ•ด์•ผํ•  ์ ์€ 000001 ์ด ๋‚˜์˜ฌ ๊ฒฝ์šฐ 1๋กœ ์ถœ๋ ฅํ•ด์•ผํ•œ๋‹ค.๊ทธ๋ž˜์„œ ๋ฌธ์ž๋ฅผ ๋„ฃ๊ธฐ ์ „์— ์ˆซ์ž์˜ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ "0"์ด๋ผ๋ฉด,์•ž์—๋‚˜์˜ค๋Š” 0์„ ์ƒ๋žตํ•ด์ฃผ๋Š” Check0 ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์คฌ๋‹ค. Check0ํ•จ์ˆ˜ ๋‚ด์—์„œ 0์ด ๋‚˜์˜ค๋ฉด replaceํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ๊ณ„์†ํ•ด์„œ replaceํ•˜๋ฉด์„œ ์ˆซ์ž์˜ ๊ธธ์ด๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. static void Check0() { ..
[BOJ] 14888: ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ (JAVA)
ยท
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ
๋ฐฑ์ค€ 14888: ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ ํ’€์ด ์‚ฌ์น™์—ฐ์‚ฐ์— ๋Œ€ํ•œ ์กฐํ•ฉ์„ ๋งŒ๋“ค์–ด ์ค€ ๋’ค,ํ•ด๋‹น ์กฐํ•ฉ์„ ์ด์š”ํ•ด์„œ ์‚ฌ์น™์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ์กฐํ•ฉ์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์น™์—ฐ์‚ฐ ๊ฐœ์ˆ˜๊ฐ€ ์ €์žฅ๋œ ๋ฐฐ์—ด์—์„œ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค ๊ฐœ์ˆ˜๋งŒํผ ๋นผ์ฃผ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ์ˆœํšŒํ•œ๋‹ค๋ฉด ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ „์ฒด์ฝ”๋“œpackage CodingTest;import java.io.*;import java.util.*;public class ์‹ค๋ฒ„1_14888_์—ฐ์‚ฐ์ž๋ผ์›Œ๋„ฃ๊ธฐ { static int N, max, min; static int arr[]; static int operations[]; static int operation[]; static boolean visited[]; static int tmp[]; public static void mai..
[BOJ] 21921: ๋ธ”๋กœ๊ทธ (JAVA)
ยท
์ฝ”ํ…Œ/Algorithm
๋ฐฑ์ค€ 21921: ๋ธ”๋กœ๊ทธ ํ’€์ด X๊ธฐ๊ฐ„๋™์•ˆ์˜ ํ•ฉ์„ ์ด์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ์™€ ๋ˆ„์ ํ•ฉ์„ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋Š”๋ฐ, ์ž๊พธ ํ‹€๋ ธ๋‹ค๊ณ  ๋‚˜์™€์„œ ์™œ์ผ๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ์•„๋ž˜ ๋ฐ˜๋ก€๋ฅผ ์ฐพ๊ฒŒ ๋˜์—ˆ๋‹ค.## ์ž…๋ ฅ10 23 0 0 3 0 0 3 0 0 3## ์ •๋‹ต36 ๊ธฐ์กด์˜ ์ฝ”๋“œ์—์„œ๋Š” while๋ฌธ ์•ˆ์—์„œ sum ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด ์ค„ ๋•Œ, max๊ฐ’์„ ์ด์šฉํ•ด์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด ์ฃผ์—ˆ๋Š”๋ฐwhile(left max) { max = sum; cnt = 1; } left++;} ์ด๋ ‡๊ฒŒ max๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐ”๋กœ ์ง์ „์˜ ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์ตœ๋Œ“๊ฐ’์œผ๋กœ sum์„ ๋ฐ”๊พธ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์ด ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค. ์ „์ฒด์ฝ”๋“œpackage CodingTest;import java.io.*;import java.util.*;public class ์‹ค๋ฒ„3_21..
[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] 2512: ์˜ˆ์‚ฐ (JAVA)
ยท
์ฝ”ํ…Œ/Algorithm
https://www.acmicpc.net/problem/2512 ํ’€์ด ๋‚˜๋ฌด์ž๋ฅด๊ธฐ ๋ž‘ ๋น„์Šทํ•œ ์ด๋ถ„ํƒ์ƒ‰/๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ์ƒ‰ ๋ฌธ์ œ ์ด๋ถ„ํƒ์ƒ‰์€ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(logN)์ด๋‹ค.๋ฐฐ์—ด์„ ์ˆœํšŒํ•  ๊ฒฝ์šฐ O(N)์ด ๊ฑธ๋ฆฌ๋Š”๋ฐ,์ด์— ๋น„ํ•˜๋ฉด ๊ต‰์žฅํžˆ ํšจ์œจ์ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. arr๋ฐฐ์—ด์„ ํ•œ๋ฐ”ํ€ด ๋Œ๋ฉด์„œ, ์ƒํ•œ์˜ˆ์‚ฐ ์ผ ๊ฒฝ์šฐ, ์ƒํ•œ ์˜ˆ์‚ฐ์„ ๋”ํ•ด์ฃผ๊ณ ์ƒํ•œ์˜ˆ์‚ฐ > ์ง€์ž์ฒด๋ณ„ ์‹ ์ฒญํ•œ ์˜ˆ์‚ฐ ์ผ ๊ฒฝ์šฐ, ์ง€์ž์ฒด๋ณ„ ์‹ ์ฒญํ•œ ์˜ˆ์‚ฐ์„ ๋”ํ•ด์คฌ๋‹ค.์ƒํ•œ์˜ˆ์‚ฐ๋ณ„ budget์ด M๋ณด๋‹ค ์ž‘์œผ๋ฉด,์ƒํ•œ์˜ˆ์‚ฐ์„ ๋†’์—ฌ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— left๊ฐ’์„ mid+1๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.(mid ๋ณด๋‹ค ์ž‘์€ ๊ฐ’๋“ค์€ ๋ณผ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ.) ์ƒํ•œ์˜ˆ์‚ฐ๋ณ„ budget์ด M๋ณด๋‹ค ํฌ๋ฉด,์ƒํ•œ์˜ˆ์‚ฐ์„ ์ค„์—ฌ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— right๊ฐ’์„ mid-1๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.(mid ๋ณด๋‹ค ํฐ ๊ฐ’๋“ค์€ ๋ณผ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ.) ์ „์ฒด์ฝ”๋“œpa..
[BOJ] 2805: ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ (JAVA)
ยท
์ฝ”ํ…Œ/Algorithm
https://www.acmicpc.net/problem/2805 ํ’€์ด ์ด๋ถ„ํƒ์ƒ‰์„ ์ž˜ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์‹œ๋„ํ•ด๋ณธ ๋ฌธ์ œ.์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ์ฒ˜๋Ÿผ left++ right--๋กœ ํ’€์—ˆ๋”๋‹ˆ ๋ฐ”๋กœ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹คใ…Žใ…Ž ๋‚˜๋ฌด๋ฅผ ์ž๋ฅด๊ธฐ ์œ„ํ•ด, ๋†’์ด๋ฅผ ์„ค์ •ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ์ดˆ๊ธฐ mid๊ฐ’์€ ๊ฐ€์žฅ ๋†’์€ ๋‚˜๋ฌด์˜ ์ ˆ๋ฐ˜์œผ๋กœ ์„ค์ •ํ•ด์ค€๋‹ค.๊ทธ๋ฆฌ๊ณ  ์ค‘๊ฐ„๊ฐ’ mid๋กœ ์ž๋ฅธ ๋‚˜๋ฌด๊ฐ€ ๋‚ด๊ฐ€ ์ž˜๋ผ์•ผํ•˜๋Š” ๋‚˜๋ฌด๋ณด๋‹ค ์ ์„ ๊ฒฝ์šฐmid๊ฐ’์„ ๋‚ฎ์ถฐ์ค˜์•ผ ํ•˜๋Š”๋ฐ, ๋‚ฎ์ถœ ๋•Œ๋Š” right ๊ฐ’์„ mid -1๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด๋‚˜๋จธ์ง€ ์˜ค๋ฅธ์ชฝ ์ ˆ๋ฐ˜์€ ๋ณผ ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.  ์ „์ฒด์ฝ”๋“œpackage CodingTest;import java.io.*;import java.util.*;public class ์‹ค๋ฒ„2_2805_๋‚˜๋ฌด์ž๋ฅด๊ธฐ { static int N, M, left, right; s..
[BOJ] 2167: 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ•ฉ (JAVA)
ยท
์ฝ”ํ…Œ/Algorithm
https://www.acmicpc.net/problem/2167 ์ „์ฒด์ฝ”๋“œpackage ๋ฐฑ์ค€renew;import java.io.*;import java.util.*;public class ์‹ค๋ฒ„5_2167_2์ฐจ์›๋ฐฐ์—ด์˜ํ•ฉ{ static int N, M; static int arr[][]; static int ans; public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBui..
[BOJ] 2839: ์„คํƒ•๋ฐฐ๋‹ฌ (JAVA)
ยท
์ฝ”ํ…Œ/Algorithm
https://www.acmicpc.net/problem/2839 ํ’€์ด ๊ทœ์น™์„ ์ฐพ์•„์„œ ํ’€์—ˆ๋‹ค.dp[12]dp[14]dp[16]dp[18]dp[20]dp[22]dp[24]dp[26]dp[28]dp[30]4444466666 12๋ฒˆ์งธ idx๋ถ€ํ„ฐ idx+=2๋ฅผ 5๋ฒˆ ํ• ๋•Œ๊นŒ์ง€ 4๋ด‰์ง€์ด๊ณ , ์ดํ›„ ์ง์ˆ˜ 5๊ฐœ๋Š” ์„คํƒ•๋ด‰์ง€ 2๊ฐœ๊ฐ€ ์ฆ๊ฐ€ํ•œ 6๋ด‰์ง€์ด๋‹ค. 4๋ด‰์ง€ .. 6๋ด‰์ง€ .. 8๋ด‰์ง€ .. ์”ฉ 5๋ฒˆdp[17]dp[19]dp[21]dp[23]dp[25]dp[27]dp[29]dp[31]dp[33]dp[35]5555577777 17๋ฒˆ์งธ idx๋ถ€ํ„ฐ idx+=2๋ฅผ 5๋ฒˆ ํ• ๋•Œ๊นŒ์ง€ 5๋ด‰์ง€์ด๊ณ , ์ดํ›„ ํ™€์ˆ˜ 5๊ฐœ๋Š” ์„คํƒ•๋ณด์ง€ 2๊ฐœ๊ฐ€ ์ฆ๊ฐ€ํ•œ 7๋ด‰์ง€์ด๋‹ค.5๋ด‰์ง€ .. 7๋ด‰์ง€ .. 9๋ด‰์ง€ .. ์”ฉ 5๋ฒˆ dp[4] ์™€ dp[7]์€ ์œ ์ผํ•˜๊ฒŒ 3๋ด‰์ง€/5๋ด‰..
[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] 1063: ํ‚น (JAVA)
ยท
์ฝ”ํ…Œ/Algorithm
1063๋ฒˆ: ํ‚น 8*8ํฌ๊ธฐ์˜ ์ฒด์ŠคํŒ์— ์™•์ด ํ•˜๋‚˜ ์žˆ๋‹ค. ํ‚น์˜ ํ˜„์žฌ ์œ„์น˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฒด์ŠคํŒ์—์„œ ๋ง์˜ ์œ„์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฃผ์–ด์ง„๋‹ค. ์•ŒํŒŒ๋ฒณ ํ•˜๋‚˜์™€ ์ˆซ์ž ํ•˜๋‚˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ, ์•ŒํŒŒ๋ฒณ์€ ์—ด์„ ์ƒ์ง•ํ•˜๊ณ , ์ˆซ์ž๋Š” www.acmicpc.net ํ’€์ด ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ BFS๋กœ ์ ‘๊ทผํ•ด์„œ ํ’€์—ˆ๋‹ค. ๋ฌธ์ œ ์ž์ฒด๋Š” ์‰ฝ๊ฒŒ ํ’€๋ ธ์œผ๋‚˜, ์ขŒํ‘œ ์ง€์ •์— ์• ๋ฅผ ๋จน์€ ๋ฌธ์ œ .. ๊ทธ๋ฆฌ๊ณ  charํ˜•์—์„œ intํ˜•์œผ๋กœ ๋ฐ”๊ฟ€ ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ๋งŒ ํ•ด๊ฒฐํ•œ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ ์ „์ฒด์ฝ”๋“œ package ๋ฐฑ์ค€renew; import java.io.*; import java.util.*; public class ์‹ค๋ฒ„3_1063_ํ‚น { static BufferedReader br = new BufferedReader(new InputStrea..