๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

HashMap10

[Java] BOJ 7662 ์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/7662์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ(dual priority queue)๋Š” ์ „ํ˜•์ ์ธ ์šฐ์„ ์ˆœ์œ„ ํ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค.์ „ํ˜•์ ์ธ ํ์™€์˜ ์ฐจ์ด์ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์—ฐ์‚ฐ(operation) ๋ช…๋ น์— ๋”ฐ๋ผ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฐ์ดํ„ฐ ๋˜๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ๋ฐ์ดํ„ฐ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ญ์ œํ•˜๋Š” ์ ์ด๋‹ค.์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์œ„ํ•ด์„  ๋‘ ๊ฐ€์ง€ ์—ฐ์‚ฐ์ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ, ํ•˜๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ์—ฐ์‚ฐ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ์—ฐ์‚ฐ์ด๋‹ค.๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ์—ฐ์‚ฐ์€ ๋˜ ๋‘ ๊ฐ€์ง€๋กœ ๊ตฌ๋ถ„๋˜๋Š”๋ฐ ํ•˜๋‚˜๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๊ฒƒ์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฒƒ์„ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.์ •์ˆ˜๋งŒ ์ €์žฅํ•˜๋Š” ์ด์ค‘ ์šฐ์„ ์ˆœ์œ„ ํ Q๊ฐ€ ์žˆ๋‹ค๊ณ  .. 2024. 9. 7.
[Java] BOJ 16928 ๋ฑ€๊ณผ ์‚ฌ๋‹ค๋ฆฌ ๊ฒŒ์ž„ ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/16928๋ฑ€๊ณผ ์‚ฌ๋‹ค๋ฆฌ ๊ฒŒ์ž„์„ ์ฆ๊ฒจ ํ•˜๋Š” ํ๋ธŒ๋Ÿฌ๋ฒ„๋Š” ์–ด๋Š ๋‚  ๊ถ๊ธˆํ•œ ์ ์ด ์ƒ๊ฒผ๋‹ค.์ฃผ์‚ฌ์œ„๋ฅผ ์กฐ์ž‘ํ•ด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ˆ˜๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด, ์ตœ์†Œ ๋ช‡ ๋ฒˆ๋งŒ์— ๋„์ฐฉ์ ์— ๋„์ฐฉํ•  ์ˆ˜ ์žˆ์„๊นŒ?๊ฒŒ์ž„์€ ์ •์œก๋ฉด์ฒด ์ฃผ์‚ฌ์œ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ฃผ์‚ฌ์œ„์˜ ๊ฐ ๋ฉด์—๋Š” 1๋ถ€ํ„ฐ 6๊นŒ์ง€ ์ˆ˜๊ฐ€ ํ•˜๋‚˜์”ฉ ์ ํ˜€์žˆ๋‹ค. ๊ฒŒ์ž„์€ ํฌ๊ธฐ๊ฐ€ 10×10์ด๊ณ , ์ด 100๊ฐœ์˜ ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋Š” ๋ณด๋“œํŒ์—์„œ ์ง„ํ–‰๋œ๋‹ค. ๋ณด๋“œํŒ์—๋Š” 1๋ถ€ํ„ฐ 100๊นŒ์ง€ ์ˆ˜๊ฐ€ ํ•˜๋‚˜์”ฉ ์ˆœ์„œ๋Œ€๋กœ ์ ํ˜€์ ธ ์žˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๋Š” ์ฃผ์‚ฌ์œ„๋ฅผ ๊ตด๋ ค ๋‚˜์˜จ ์ˆ˜๋งŒํผ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ i๋ฒˆ ์นธ์— ์žˆ๊ณ , ์ฃผ์‚ฌ์œ„๋ฅผ ๊ตด๋ ค ๋‚˜์˜จ ์ˆ˜๊ฐ€ 4๋ผ๋ฉด, i+4๋ฒˆ ์นธ์œผ๋กœ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ์ฃผ์‚ฌ์œ„๋ฅผ ๊ตด๋ฆฐ ๊ฒฐ๊ณผ๊ฐ€ 100๋ฒˆ ์นธ์„ ๋„˜์–ด๊ฐ„๋‹ค๋ฉด .. 2024. 9. 7.
[Java] BOJ 18870 ์ขŒํ‘œ ์••์ถ• ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/18870์ˆ˜์ง์„  ์œ„์— N๊ฐœ์˜ ์ขŒํ‘œ X1, X2, ..., XN์ด ์žˆ๋‹ค. ์ด ์ขŒํ‘œ์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค.X1, X2, ..., XN์— ์ขŒํ‘œ ์••์ถ•์„ ์ ์šฉํ•œ ๊ฒฐ๊ณผ X'1, X'2, ..., X'N๋ฅผ ์ถœ๋ ฅํ•ด๋ณด์ž.Xi๋ฅผ ์ขŒํ‘œ ์••์ถ•ํ•œ ๊ฒฐ๊ณผ X'i์˜ ๊ฐ’์€ Xi > Xj๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ขŒํ‘œ Xj์˜ ๊ฐœ์ˆ˜์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค.๋‘˜์งธ ์ค„์—๋Š” ๊ณต๋ฐฑ ํ•œ ์นธ์œผ๋กœ ๊ตฌ๋ถ„๋œ X1, X2, ..., XN์ด ์ฃผ์–ด์ง„๋‹ค.์ฒซ์งธ ์ค„์— X'1, X'2, ..., X'N์„ ๊ณต๋ฐฑ ํ•œ ์นธ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.์•„์ด๋””์–ด์ขŒํ‘œ๊ฐ’์„ ์ €์žฅํ•  ๋•Œ ๋ฐฐ์—ด์— ํ•œ๋ฒˆ ์ €์žฅํ•˜๊ณ  TreeSet์— ํ•œ๋ฒˆ ๋” ์ €์žฅํ•œ๋‹ค.TreeSet์— ์ €์žฅํ•˜๋Š” ์ด์œ ๋Š” ์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ์ •๋ ฌํ•˜.. 2024. 8. 15.
[Java] BOJ 9375 ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/9375ํ•ด๋นˆ์ด๋Š” ํŒจ์…˜์— ๋งค์šฐ ๋ฏผ๊ฐํ•ด์„œ ํ•œ๋ฒˆ ์ž…์—ˆ๋˜ ์˜ท๋“ค์˜ ์กฐํ•ฉ์„ ์ ˆ๋Œ€ ๋‹ค์‹œ ์ž…์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์˜ค๋Š˜ ํ•ด๋นˆ์ด๊ฐ€ ์•ˆ๊ฒฝ, ์ฝ”ํŠธ, ์ƒ์˜, ์‹ ๋ฐœ์„ ์ž…์—ˆ๋‹ค๋ฉด, ๋‹ค์Œ๋‚ ์€ ๋ฐ”์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๊ฑฐ๋‚˜ ์•ˆ๊ฒฝ๋Œ€์‹  ๋ Œ์ฆˆ๋ฅผ ์ฐฉ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์•ผํ•œ๋‹ค. ํ•ด๋นˆ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ์ฃผ์–ด์กŒ์„๋•Œ ๊ณผ์—ฐ ํ•ด๋นˆ์ด๋Š” ์•Œ๋ชธ์ด ์•„๋‹Œ ์ƒํƒœ๋กœ ๋ฉฐ์น ๋™์•ˆ ๋ฐ–์— ๋Œ์•„๋‹ค๋‹ ์ˆ˜ ์žˆ์„๊นŒ?์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ์ตœ๋Œ€ 100์ด๋‹ค.๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” ํ•ด๋นˆ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ์˜ ์ˆ˜ n(0 ≤ n ≤ 30)์ด ์ฃผ์–ด์ง„๋‹ค.๋‹ค์Œ n๊ฐœ์—๋Š” ํ•ด๋นˆ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ์˜ ์ด๋ฆ„๊ณผ ์˜์ƒ์˜ ์ข…๋ฅ˜๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค.๊ฐ™์€ ์ข…๋ฅ˜์˜ ์˜์ƒ์€ ํ•˜๋‚˜๋งŒ ์ž…์„ ์ˆ˜ ์žˆ๋‹ค.๋ชจ๋“  ๋ฌธ์ž์—ด์€ 1์ด์ƒ 20์ด.. 2024. 7. 28.
[Java] BOJ 17219 ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/17219๋ฌธ์„์ด๋Š” ๊ฒฝ๋ฏผ์ด๋ฅผ ์œ„ํ•ด ๋ฉ”๋ชจ์žฅ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์‹ฌํ•˜์˜€๋‹ค! ๋ฌธ์„์ด๋ฅผ ๋„์™€ ๊ฒฝ๋ฏผ์ด์˜ ๋ฉ”๋ชจ์žฅ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ์•„์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด๋ณด์ž.์ฒซ์งธ ์ค„์— ์ €์žฅ๋œ ์‚ฌ์ดํŠธ ์ฃผ์†Œ์˜ ์ˆ˜ N(1 ≤ N ≤ 100,000)๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ์œผ๋ ค๋Š” ์‚ฌ์ดํŠธ ์ฃผ์†Œ์˜ ์ˆ˜ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค.N+2๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ฐพ์œผ๋ ค๋Š” ์‚ฌ์ดํŠธ ์ฃผ์†Œ๊ฐ€ ํ•œ์ค„์— ํ•˜๋‚˜์”ฉ ์ž…๋ ฅ๋œ๋‹ค. ์ด๋•Œ, ๋ฐ˜๋“œ์‹œ ์ด๋ฏธ ์ €์žฅ๋œ ์‚ฌ์ดํŠธ ์ฃผ์†Œ๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.๋‘๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๊ฐ ์ค„์— ์‚ฌ์ดํŠธ ์ฃผ์†Œ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ์‚ฌ์ดํŠธ ์ฃผ์†Œ๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž, ๋Œ€์‹œ('-'), ๋งˆ์นจํ‘œ('.')๋กœ.. 2024. 7. 24.
[Java] BOJ 1764 ๋“ฃ๋ณด์žก ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/1764๊น€์ง„์˜์ด ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ๊ณผ, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ์ด ์ฃผ์–ด์งˆ ๋•Œ, ๋“ฃ๋„ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.์ฒซ์งธ ์ค„์— ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ N, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค.์ด์–ด์„œ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„๊ณผ, N+2์งธ ์ค„๋ถ€ํ„ฐ ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ด๋ฆ„์€ ๋„์–ด์“ฐ๊ธฐ ์—†์ด ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๊ทธ ๊ธธ์ด๋Š” 20 ์ดํ•˜์ด๋‹ค. N, M์€ 500,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ์—๋Š” ์ค‘๋ณต๋˜๋Š” ์ด๋ฆ„์ด ์—†์œผ๋ฉฐ, ๋ณด๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์˜ ๋ช…๋‹จ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.๋“ฃ๋ณด์žก์˜ ์ˆ˜์™€ ๊ทธ ๋ช…๋‹จ์„ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.์•„์ด๋””์–ด๋“ฃ๋„ ๋ชปํ•œ ์‚ฌ๋žŒ์ด๋ฆ„์„ hashmap์— .. 2024. 7. 23.