์ •๋ ฌ

    [JAVA] ๋ฐฑ์ค€ 11004๋ฒˆ ใ€K๋ฒˆ์งธ ์ˆ˜ใ€‘

    ์ด ๋ฌธ์ œ๋Š”, BufferedReader ๋กœ ์ž…๋ ฅ ๋ฐ›๊ณ , sort() ๋ฉ”์„œ๋“œ๋ฅผ ์“ฐ๋ฉด ํ•ด๊ฒฐ๋˜๊ธด ํ•˜์ง€๋งŒ, ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜• ํŠน์„ฑ์ƒ, ์ •๋ ฌ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ๋” ์„ค๊ณ„ํ•ด๋†จ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ์ด ๋“ค๊ธฐ๋„ ํ–ˆ๊ณ , ์†๋„๋„ ๋Š๋ฆฐ ๊ฒƒ ๊ฐ™์•„ ์ฐพ์•„๋ณด๋‹ˆ Quick Sort ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด์„œ ํ‘ธ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์•˜๋‹ค. double pivot quick sort ๋ผ๋Š” quick sort ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „๋„ ์žˆ์—ˆ์ง€๋งŒ, Quick sort ์ž์ฒด๋ฅผ ์ฒ˜์Œ ์ ‘ํ•ด๋ด์„œ, ์ผ๋‹จ Quick Sort ๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ œ์ถœํ•˜์˜€๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ด๋ณด๊ฒ ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด, ๊ธฐ์ค€ ๊ฐ’์„ ํ•˜๋‚˜ ์ •ํ•˜๊ณ , start index 0์—์„œ๋ถ€ํ„ฐ ๊ธฐ์ค€๊ฐ’๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ’์„ ๋ฐœ๊ฒฌํ•˜๊ณ , end index ๋์—์„œ๋ถ€ํ„ฐ ๊ธฐ์ค€๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฐ’์„ ๋ฐœ๊ฒฌํ•  ์‹œ, ๋‘์ˆ˜์˜ ์œ„์น˜๋ฅผ ..

    [JAVA] ๋ฐฑ์ค€ 11652๋ฒˆ ใ€์นด๋“œใ€‘

    ์ตœ๊ทผ์—, Map ์‚ฌ์šฉํ•ด์„œ ์นด์šดํŒ…ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋งŽ์ด ์ž‘์„ฑํ•ด๋ดค๋˜๊ฒŒ, ์ด ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ๋„์›€์„ ์ฃผ์—ˆ๋‹ค. ํ™•์‹คํžˆ, ์—ฌ๋Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€์–ด๋ณด๋Š”๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋‹ค์–‘ํ•œ ๋ฌธ๋ฒ•๋“ค์„ ๋ณต์Šตํ•˜๊ณ  ๋ฐฐ์šฐ๋Š”๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์•„๋ฌดํŠผ! ์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ ํฌ๋ฏ€๋กœ, Map map์˜ ํ‚ค ๊ฐ’์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” ์ˆ˜๋ฅผ ๊ธฐ๋กํ•  ๊ฒƒ์ด๊ณ , integer ์—๋Š” ํšŸ์ˆ˜๋ฅผ ์…€ ๊ฒƒ์ด๋‹ค. Map ์นด์šดํŒ… ์ž์ฒด๋Š” ํฌ๊ฒŒ ์–ด๋ ค์šด ๋ถ€๋ถ„์€ ์—†์ง€๋งŒ, ๊ฐ€์žฅ ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ผ๋ฉด ์ž‘์€ ๊ฒƒ์„ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด ๋ถ€๋ถ„ ์กฐ๊ฑด์‹์„ ์ž‘์„ฑํ•  ๋•Œ, ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค. maxTime์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ์‹œํ‚ค๊ณ , maxTime ๋ณด๋‹ค ํฐ ํšŸ์ˆ˜๋ฅผ ๊ฐ€์ง„ key ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด, maxKey์™€ maxTime์„ ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค. ๋งŒ์•ฝ, ์–ด๋–ค ํ‚ค์˜ ํšŸ์ˆ˜๊ฐ€, ์ด๋ฏธ ๋“ฑ๋ก๋œ maxTime๊ณผ ๋™์ผํ•˜๋‹ค๋ฉด..

    [JAVA] ๋ฐฑ์ค€ 10989๋ฒˆ ใ€์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3ใ€‘

    ๋ฌธ์ œ ์ž์ฒด๋Š” ํ‰๋ฒ”ํ•œ ์˜ค๋ฆ„์ฐจ์ˆœ ๋ฌธ์ œ์ด์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ์™€ ์‹œ๊ฐ„ ์ œํ•œ์ด ๊นŒ๋‹ค๋กœ์›Œ์„œ ๊ณฐ๊ณฐํžˆ ์ƒ๊ฐํ•ด๋ณด๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ดค๋‹ค. ์š”์ฆ˜, ์ •๋ ฌ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋ฉด์„œ StringBuilder ์˜ ์œ„๋Œ€ํ•จ์„ ๋Š๋ผ๊ณ  ์žˆ์–ด์„œ, StringBuilder ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜๋‹ค. ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. StringBuilder ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ, ์ž…๋ ฅ๊ฐ’์ด 1~10000์ด๋ผ๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ, ์ž…๋ ฅ๋˜๋Š” ๊ฐ’์„ ์ธ๋ฑ์Šค๋กœ ์ง€์ •ํ•˜๊ณ  ๊ทธ ์ธ๋ฑ์Šค ๊ฐ’์— "\n" ์„ ์ถ”๊ฐ€ํ•ด์„œ ๋ฌธ์ž์—ด์„ append ํ•ด์ค€ ํ›„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ String str ์„ ๋ฃจํ”„ ์•ˆ์—์„œ ์„ ์–ธํ•  ๊ฒฝ์šฐ, ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๊ฐ€ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค. import java.io.BufferedReader; import java.io.IOException; import java.io.Input..

    [JAVA] ๋ฐฑ์ค€ 10825๋ฒˆ ใ€๊ตญ์˜์ˆ˜ใ€‘

    ์ด์ œ, ์ •๋ ฌ ๋ฌธ์ œ๋ฅผ ๋žŒ๋‹ค์‹์„ ์‚ฌ์šฉํ•ด์„œ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์™„์ „ํžˆ ํ„ฐ๋“ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ , ์ •๋ ฌ ๋ฌธ์ œ๋ฅผ ํ’€๋•Œ๋งˆ๋‹ค StringBuilder๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์˜ ์—„์ฒญ๋‚œ ํšจ๊ณผ๋ฅผ ๋Š๋ผ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์›ฌ๋งŒํ•˜๋ฉด StringBuilder๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค. ใ…Žใ…Ž for each๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ println ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ StringBuilder์— ์Œ“์•„๋‘๊ณ  ํ•œ๋ฒˆ์— ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์†๋„๊ฐ€ ๊ฑฐ์˜ 2๋ฐฐ ์ฐจ์ด ๋‚œ๋‹ค...ใ…Žใ…Ž ์•„๋ฌดํŠผ ์ด ๋ฌธ์ œ์˜ ํ‚คํฌ์ธํŠธ๋Š” ๊ตญ์–ด ์ ์ˆ˜๋Š” ๊ฐ์†Œํ•˜๋Š” ์ˆœ์„œ, ์˜์–ด ์ ์ˆ˜๋Š” ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ, ์ˆ˜ํ•™ ์ ์ˆ˜๋Š” ๊ฐ์†Œํ•˜๋Š” ์ˆœ์„œ, ์ด๋ฆ„์€ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ ์ž„์„ ํŒŒ์•…ํ•˜๊ณ  ์ด์— ๋งž๋Š” return ๊ฐ’์„ ๊ฑด๋„ค์ฃผ๋ฉด ๋œ๋‹ค. ์ฐธ๊ณ ๋กœ ์ด๋ฆ„์€ String ์ด๋ฏ€๋กœ, compareTo() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. [JAVA] Comparator ์™€..

    [JAVA] ๋ฐฑ์ค€ 10814๋ฒˆ ใ€๋‚˜์ด์ˆœ ์ •๋ ฌใ€‘

    ์ด ๋ฌธ์ œ๋„, ๋‹ค๋ฅธ ์ •๋ ฌ ๋ฌธ์ œ์™€ ๋น„์Šทํ•˜๋‹ค. ์ฒ˜์Œ์—, Member ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ ๋’ค, Comparable์„ implements ํ•œ ๋‹ค์Œ ๋‚˜์ด๊ฐ€ ๊ฐ™๋‹ค๋ฉด, ๋งด๋ฒ„ ์•„์ด๋””๋ฅผ ๋น„๊ตํ•˜๊ณ , ๋‚˜์ด๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด, ๋‚˜์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ๋˜๊ฒŒ๋” compareTo()๋ฅผ ์ •์˜ํ•œ ํ›„ List memberList = new ArrayList(); ๋ฅผ ์„ ์–ธํ•ด์„œ Member ํƒ€์ž…์˜ ๊ฐ์ฒด๋“ค์„ ๊ธฐ๋กํ•œ ๋’ค, Collections.sort()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ •๋ ฌํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถœ๋ ฅ ์‹œ, [๋‚˜์ด ์ด๋ฆ„] ์ด ์ถœ๋ ฅ๋˜์•ผ ํ•˜๋ฏ€๋กœ, toString()์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์˜€๋‹ค. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java..

    [JAVA] ๋ฐฑ์ค€ 11651๋ฒˆ ใ€์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ 2ใ€‘

    ์ด๋ฒˆ ๋ฌธ์ œ๋Š”, ์ด์ „์— ํ’€์—ˆ์—ˆ๋˜ 11650 ๋ฌธ์ œ์™€ ๊ต‰์žฅํžˆ ํก์‚ฌํ•˜๋‹ค. [JAVA] ๋ฐฑ์ค€ 11650๋ฒˆ ใ€์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐใ€‘ ์ด ๋ฌธ์ œ๋Š”, ๋‹จ์ˆœํžˆ 1์ฐจ์› ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ด ์•„๋‹Œ, x์ขŒํ‘œ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ y์ขŒํ‘œ๋„ ๋น„๊ตํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, sort ํ•จ์ˆ˜์˜ ์ •๋ ฌ ์กฐ๊ฑด์„ ๋ณ€๊ฒฝ์‹œ์ผœ์ฃผ์–ด์•ผ ํ•œ๋‹ค. [JAVA] Comparator ์™€ Comparable์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ ๋ฐฐ์—ด yinq.tistory.com ๋‹ค๋งŒ, ์ฐจ์ด์ ์ด ์žˆ๋‹ค๋ฉด, y์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ ๋จผ์ € ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•œ ๋’ค์—, y์ขŒํ‘œ๊ฐ€ ๊ฐ™๋‹ค๋ฉด, x์ขŒํ‘œ๋ฅผ ๋น„๊ตํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋น„๊ตํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. ์ €๋ฒˆ ๋ฌธ์ œ์—์„œ๋Š”, Comparator ์„ implements ํ•˜๋Š” CustomComparator ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ•ด๊ฒฐํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—” ๋žŒ๋‹ค ์‹ ์—ฐ์Šต๋„ ํ•  ๊ฒธ, ๋žŒ๋‹ค์‹์„ ์ด์šฉํ•ด์„œ ํ’€์–ด๋ดค๋‹ค. ๋žŒ๋‹ค์‹์œผ๋กœ..

    [JAVA] ๋ฐฑ์ค€ 11650๋ฒˆ ใ€์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐใ€‘

    ์ด ๋ฌธ์ œ๋Š”, ๋‹จ์ˆœํžˆ 1์ฐจ์› ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ด ์•„๋‹Œ, x์ขŒํ‘œ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ y์ขŒํ‘œ๋„ ๋น„๊ตํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, sort ํ•จ์ˆ˜์˜ ์ •๋ ฌ ์กฐ๊ฑด์„ ๋ณ€๊ฒฝ์‹œ์ผœ์ฃผ์–ด์•ผ ํ•œ๋‹ค. [JAVA] Comparator ์™€ Comparable์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ Arrays ๋ฅผ import ํ•ด์ค€ ๋’ค, Arrays์˜ sort ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•Œ์•„์„œ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•ด์ค€๋‹ค! sort ๋ฉ”์„œ๋“œ๋Š” Comparable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ Arrays ํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„ํ•˜์—ฌ ๋™ yinq.tistory.com ๋งˆ์นจ ์ตœ๊ทผ์—, ํ•œ ๋ฐฑ์—”๋“œ ์Šค์ฟจ ๋™๊ธฐ๋ถ„ ๋•๋ถ„์— Comparator ์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ํ•œ ์ƒํƒœ๋ผ์„œ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋จผ์ €, Arrays.sort(int [][] array) ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ sort ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ..

    [JAVA] ๋ฐฑ์ค€ 2751๋ฒˆ ใ€์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 2ใ€‘

    ์ •๋‹ต์„ ๋งž์ถ”๊ธด ํ–ˆ์ง€๋งŒ, ์‹œ๊ฐ„์ด ๋น„์ •์ƒ์ ์œผ๋กœ ๋†’์€ ๊ฒƒ ๊ฐ™์•„ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ๋‹ค. 1. BufferedReader ์™€ Arrays.sort()๋ฅผ ์‚ฌ์šฉํ•œ ๋’ค, ํ–ฅ์ƒ๋œ for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ BufferedWriter๋กœ ์ถœ๋ ฅํ•˜๊ฒŒ๋” ๋‹ต์„ ์ œ์ถœํ–ˆ๋”๋‹ˆ 1708ms ๊ฐ€ ๋‚˜์™”๋‹ค. 2. BufferedReader ์™€ Arrays.sort()๋ฅผ ์‚ฌ์šฉํ•œ ๋’ค, ์ผ๋ฐ˜์ ์ธ for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ BufferedWriter๋กœ ์ถœ๋ ฅํ•˜๊ฒŒ๋” ๋‹ต์„ ์ œ์ถœํ–ˆ๋”๋‹ˆ 1472ms ๊ฐ€ ๋‚˜์™”๋‹ค. ํ–ฅ์ƒ๋œ for๋ฌธ๋ณด๋‹ค ๊ทธ๋ƒฅ for๋ฌธ ๋ฃจํ”„๋ฅผ ๋Œ๋ฆฌ๋Š”๊ฒŒ ์†๋„๊ฐ€ ๋” ๋น ๋ฅด๋‹ค๋Š” ์‚ฌ์‹ค์„ ์–ผ๋–จ๊ฒฐ์— ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. 3. BufferedReader ๋กœ ์ž…๋ ฅ์„ ๋ฐ›์€ ๋’ค, Arrays.sort ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  StringBuilder๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋“ค์„ ์ €์žฅํ•œ ๋’ค, ํ•œ๋ฒˆ์— ์ถœ๋ ฅํ•˜๊ฒŒ๋”..