[์ž๋ฃŒ๊ตฌ์กฐ][Java] HashSet ์ค‘๋ณต ์ œ๊ฑฐ ๋™์ž‘ ์›๋ฆฌ: HashSet์€ ์–ด๋–ป๊ฒŒ ์ค‘๋ณต์„ ํ™•์ธํ•˜๋‚˜์š”?
ยท
๐Ÿ˜บ ์–ธ์–ด/โ˜•Java
๐Ÿ”Ž ์ฃผ์ œHashSet์˜ ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ์ค‘๋ณต ์ œ๊ฑฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์„ค๋ช…ํ•˜๊ณ , HashSet์ด ํšจ์œจ์ ์ธ ์ค‘๋ณต ์ฒดํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.์ด ๊ธ€์—์„œ๋Š” HashSet์— ์š”์†Œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ์›๋ฆฌ๋ฅผ ์‚ดํŽด๋ณธ๋‹ค.HashSetimport java.util.HashSet;HashSet set = new HashSet();HashSet์˜ ํŠน์ง•์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , ๊ณ ์œ ํ•œ ๊ฐ’๋งŒ ์ €์žฅํ•œ๋‹ค.null ๊ฐ’์„ ํ—ˆ์šฉํ•œ๋‹ค.์š”์†Œ์˜ ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค.Java Collectios Framework ์ค‘ Set ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.ํ•ด์‹œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฅธ๋‹ค.โš™๏ธ ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹HashSet์€ HashMap์œผ๋กœ ๊ตฌํ˜„๋œ๋‹คHashSet ํด๋ž˜์Šค๋ฅผ ๋“ค์—ฌ๋‹ค๋ณด๋ฉด ์ƒ์„ฑ์ž์—์„œ HashMap์„ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋‹ค.HashSet.javapublic cla..
[Java] ์ŠคํŠธ๋ฆผ Stream ๊ฐœ๋…๊ณผ Stream API ์ด์ •๋ฆฌ
ยท
๐Ÿ˜บ ์–ธ์–ด/โ˜•Java
๐Ÿ”Ž ์ฃผ์ œ์˜ค๋Š˜์€ Stream API ์ž์ฒด์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ณ ์ž ํ•œ๋‹ค.โœ… StreamCollection Framework๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์กฐ์ž‘ํ•˜๋Š” ๊ตฌ์กฐ์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌList, Set, Map๋“ค์ด ํฌํ•จ๋˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๊ฒ€์ƒ‰, ์‚ญ์ œํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.์œ„ ๊ตฌ์กฐ๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ์ฐจํ›„ ๋‹ค๋ฅธ ๊ธ€๋กœ ๋‹ค๋ฃจ๊ฒ ๋‹ค.Stream์ปฌ๋ ‰์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ ์—ฐ๊ฒฐ๋˜์–ด ์˜์†๋œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ œ๊ณตํ•œ๋‹ค.๋ฐ์ดํ„ฐ๋ฅผ ์ผํšŒ์„ฑ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ.์˜์†: "์ŠคํŠธ๋ฆผ ์ž‘์—… ํ›„์—๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ™”ํ•˜์ง€ ์•Š๊ณ  ์ง€์†์ ์œผ๋กœ ์กด์žฌํ•œ๋‹ค"๋Š” ๋œป์ด๋‹ค.๋ถˆ๋ณ€์„ฑ: ์ฒ˜๋ฆฌ๋œ ๊ฒฐ๊ณผ๋„ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋กœ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ์›๋ณธ ๋ฐ์ดํ„ฐ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.์ง€์—ฐ ์ฒ˜๋ฆฌ: ์ค‘๊ฐ„ ์—ฐ์‚ฐ๊ณผ ์ตœ์ข… ์—ฐ์‚ฐ์ค‘๊ฐ„ ์—ฐ์‚ฐ: ์ตœ์ข… ์—ฐ์‚ฐ์ด ํ˜ธ์ถœ๋  ๋•Œ๊นŒ์ง€ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ , ๋Œ€๊ธฐ..
[๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ] ์‰ฌ์šด ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ๋ณด๋Š” SOLID ์›์น™
ยท
๐Ÿ”Ž ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
๐Ÿ”Ž ์ฃผ์ œ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—๋Š” 'SOLID' ์›์น™์ด ์žˆ๋‹ค. Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, Dependency Inversion ์ด 5๊ฐ€์ง€ ์›์น™์„ ๋งํ•˜๋Š”๋ฐ ์ž์„ธํ•œ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ 5๊ฐœ์˜ ๊ฐœ๋…์„ ๋ชจ๋‘ ๋ณด๊ณ ์ž ํ•œ๋‹ค.โœ… S: ๋‹จ์ผ ์ฑ…์ž„ ์›์น™(SRP)๋‹จ์ผ ์ฑ…์ž„ ์›์น™(Single Responsibility, SRP)๋Š” "ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค"๋Š” ์›์น™์ด๋‹ค.์ฑ…์ž„: ํด๋ž˜์Šค๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ณ€๊ฒฝ ์ด์œ ์‰ฝ๊ฒŒ๋Š” ํด๋ž˜์Šค๊ฐ€ ๋‹ด๋‹นํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ํ•˜๋‚˜์˜ "์ผ"์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํด๋ž˜์Šค๋Š” ์ž์‹ ์ด ๋งก์€ ํŠน์ •ํ•œ "์ผ"๋งŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” ๋‹จ ํ•œ๊ฐ€์ง€์˜ ์ด์œ ๋กœ๋งŒ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•œ๋‹ค.ํ•˜๋‚˜์˜ ํด๋ž˜์Šค..
[Java] ๋น ๋ฅธ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ: BufferedReader์™€ BufferedWriter + Buffer (with ๋ฐฑ์ค€15552)
ยท
๐Ÿ˜บ ์–ธ์–ด/โ˜•Java
์‹œ์ž‘๋ฐฑ์ค€ ์ด ๋ฌธ์ œ๋กœ๋ถ€ํ„ฐ ์˜๊ฐ์„ ์–ป๊ฒŒ ๋œ ํฌ์ŠคํŒ…์ด๋‹ค. https://www.acmicpc.net/problem/15552๋ณธ๊ฒฉ์ ์œผ๋กœ for๋ฌธ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์ „์— ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์ด ์žˆ๋‹ค. ์ž…์ถœ๋ ฅ ๋ฐฉ์‹์ด ๋А๋ฆฌ๋ฉด ์—ฌ๋Ÿฌ ์ค„์„ ์ž…๋ ฅ๋ฐ›๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•  ๋•Œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.Java๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, Scanner์™€ System.out.println ๋Œ€์‹  BufferedReader์™€ BufferedWriter๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. BufferedWriter.flush๋Š” ๋งจ ๋งˆ์ง€๋ง‰์— ํ•œ ๋ฒˆ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. Buffer๋ฅผ ์จ๋ณธ ์  ์—†๋Š” ๊ฑด ์•„๋‹ˆ์ง€๋งŒ ํ™•์‹คํžˆ ๊ธฐ์กด์—๋Š” ๋Œ€๋ถ€๋ถ„ System.out.print์™€ Scanner๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ์ •๋ฆฌํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. Buffer?์ผ๋‹จ, System.in๊ณผ System.ou..