Java๋Š” Call by Value๋งŒ ํ•œ๋‹ค
ยท
โ˜•Java
ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹์€ Call by Value(๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ)์™€ Call by Reference(์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ)๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์ฝ๋А๋ƒ์— ๋”ฐ๋ผ ๋ฐ˜ํ™˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์—๋‘ ๊ฐœ๋…์˜ ์ฐจ์ด๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ด์š”.Call by Value์™€ Call by ReferenceCall by Value : ๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ๊ฐ’ ์ž์ฒด๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ์‹ -> ์ธ์ž๋กœ ๋ฐ›์€ ๊ฐ’์„ ๋ณต์‚ฌํ•˜์—ฌ ์ฒ˜๋ฆฌ๋ณ€์ˆ˜์˜ ๋ณต์‚ฌ๋ณธ์ด ์ „๋‹ฌ๋˜์–ด ์›๋ž˜ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค์‹ค์ œ ์ธ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜์— ์ƒ์„ฑ๋œ๋‹คpublic void changeNum(int num) { num = 10;}int num = 5;changeNum(num);System.out.pritnln(num);------------------------------๊ฒฐ๊ณผ: 5 /..
Record๋ฅผ DTO๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ญ”๊ฐ€์š”?
ยท
โ˜•Java
๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ธฐ๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค๋˜ ์ˆ˜๋งŽ์€ ์ฝ”๋“œ๋“ค, ์ด์ œ๋Š” Record ํ•œ ์ค„๋กœ ๋๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.DTO๋ž€?DTO(Data Transfer Object)๋Š”์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ณ„์ธต ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Java ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ณ„์ธต์—์„œ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ฑฐ๋‚˜, ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ทฐ ๊ณ„์ธต์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ๋“ฑ๋“ฑ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ผ๋ฐ˜์ ์œผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์ตœ๋Œ€ํ•œ ๋ฐฐ์ œํ•˜๊ณ  ์˜ค์ง ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๋ฐ”๊ตฌ๋‹ˆ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต Java ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.public class UserDTO { private String name; private String email; // ์ƒ์„ฑ์ž pubilc UserDTO(String name, String e..
[Java] ๋ฐฑ์ค€ 2178๋ฒˆ - BFS ํ™œ์šฉ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๊ธฐ
ยท
โ˜•Java/์ฝ”๋”ฉํ…Œ์ŠคํŠธ
๋ฌธ์ œ: ๋ฐฑ์ค€ 2178๋ฒˆ (์‹ค๋ฒ„ 1)https://www.acmicpc.net/problem/2178 N×Mํฌ๊ธฐ์˜ ๋ฐฐ์—ด๋กœ ํ‘œํ˜„๋˜๋Š” ๋ฏธ๋กœ๊ฐ€ ์žˆ๋‹ค.๋ฏธ๋กœ์—์„œ 1์€ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์นธ์„ ๋‚˜ํƒ€๋‚ด๊ณ , 0์€ ์ด๋™ํ•  ์ˆ˜ ์—†๋Š” ์นธ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฏธ๋กœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, (1, 1)์—์„œ ์ถœ๋ฐœํ•˜์—ฌ (N, M)์˜ ์œ„์น˜๋กœ ์ด๋™ํ•  ๋•Œ ์ง€๋‚˜์•ผ ํ•˜๋Š” ์ตœ์†Œ์˜ ์นธ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ํ•œ ์นธ์—์„œ ๋‹ค๋ฅธ ์นธ์œผ๋กœ ์ด๋™ํ•  ๋•Œ, ์„œ๋กœ ์ธ์ ‘ํ•œ ์นธ์œผ๋กœ๋งŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.์œ„์˜ ์˜ˆ์—์„œ๋Š” 15์นธ์„ ์ง€๋‚˜์•ผ (N, M)์˜ ์œ„์น˜๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ์นธ์„ ์…€ ๋•Œ์—๋Š” ์‹œ์ž‘ ์œ„์น˜์™€ ๋„์ฐฉ ์œ„์น˜๋„ ํฌํ•จํ•œ๋‹ค. ์ž…๋ ฅ๋ฏธ๋กœ์—์„œ 1์€ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์นธ์„ ๋‚˜ํƒ€๋‚ด๊ณ , 0์€ ์ด๋™ํ•  ์ˆ˜ ์—†๋Š” ์นธ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฏธ๋กœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, (1, 1)์—์„œ ์ถœ๋ฐœํ•˜์—ฌ (N,..
[Java] ์ฝ”ํ…Œ์—์„œ ํšจ์œจ์ ์ธ ์ž…์ถœ๋ ฅ: BuffereredReader/Writer, StringTokenizer, StringBuilder + ๋ฐฑ์ค€ 15552
ยท
โ˜•Java/์ฝ”๋”ฉํ…Œ์ŠคํŠธ
`Scanner`์™€ `System.out.println` ๋Œ€์‹  ๋น ๋ฅด๊ฒŒ ์ž…๋ ฅ/์ถœ๋ ฅ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด๊ฒŒ ๋œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ์†๋„๊ฐ€ ๋น ๋ฅธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•  ๋•Œ ์œ ๋ฆฌํ•œ BufferReader/Writer ํด๋ž˜์Šค์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.๐Ÿ”— ๋ฐฑ์ค€ 15552๋ฒˆ๋ณธ๊ฒฉ์ ์œผ๋กœ for๋ฌธ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์ „์— ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์ด ์žˆ๋‹ค. ์ž…์ถœ๋ ฅ ๋ฐฉ์‹์ด ๋А๋ฆฌ๋ฉด ์—ฌ๋Ÿฌ ์ค„์„ ์ž…๋ ฅ๋ฐ›๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•  ๋•Œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. C++์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  cin/cout์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, cin.tie(NULL)๊ณผ sync_with_stdio(false)๋ฅผ ๋‘˜ ๋‹ค ์ ์šฉํ•ด ์ฃผ๊ณ , endl ๋Œ€์‹  ๊ฐœํ–‰๋ฌธ์ž(\n)๋ฅผ ์“ฐ์ž. ๋‹จ, ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋” ์ด์ƒ scanf/printf/puts/getchar/putchar ๋“ฑ C์˜ ์ž…์ถœ๋ ฅ ๋ฐฉ..
[Java] ์œ„์ƒ ์ •๋ ฌ(Topological Sort) ๊ฐœ๋…๊ณผ ๊ตฌํ˜„
ยท
โ˜•Java
์œ„์ƒ ์ •๋ ฌ์ด๋ž€๊ทธ๋ž˜ํ”„ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ผ์ข…์œผ๋กœ, ์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ๋Š” ์ผ๋ จ์˜ ์ž‘์—…์„ ์ฐจ๋ก€๋Œ€๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์œ„์ƒ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋ ค๋ฉด DAG(Directed Acyclic Graph)์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.๋ฐฉํ–ฅ์„ฑ O: Node A → Node B์™€ ๊ฐ™์ด ๋‘ ๋…ธ๋“œ ์‚ฌ์ด ๋ฐฉํ–ฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.์‚ฌ์ดํด X: A → B, B → A์•„ ๊ฐ™์€ ์‚ฌ์ดํด์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด 3๊ฐœ์˜ ๊ณผ๋ชฉ์ด ์žˆ๊ณ , ํ•œ ๊ณผ๋ชฉ์„ ๋“ฃ๊ธฐ ์œ„ํ•œ ์„ ์ด์ˆ˜๊ณผ๋ชฉ ๊ด€๊ณ„๊ฐ€ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.์„ธ ๊ณผ๋ชฉ์„ ๋ชจ๋‘ ๋“ฃ๋Š” ์ฝ”์Šค๋Š” `ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ → C ํ”„๋กœ๊ทธ๋ž˜๋ฐ → ๊ณ ๊ธ‰ C ํ”„๋กœ๊ทธ๋ž˜๋ฐ`์˜ ์ˆœ์„œ๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.`๊ณ ๊ธ‰ C ํ”„๋กœ๊ทธ๋ž˜๋ฐ → C ํ”„๋กœ๊ทธ๋ž˜๋ฐ → ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ` ์ˆœ์„œ๋Š” ์•ˆ ๋˜๋Š” ๊ฒ๋‹ˆ๋‹ค.์ด์ฒ˜๋Ÿผ ๊ทธ๋ž˜ํ”„์—์„œ ๋ฐฉํ–ฅ์„ฑ์„ ํ†ตํ•ด ์ ์ ˆํ•œ ์ˆœ์„œ๋ฅผ..
[Java] ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) ๊ฐœ๋…๊ณผ ์ž๋ฐ” ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ
ยท
โ˜•Java
์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)์ผ๋ฐ˜์ ์ธ ํ์˜ ๊ตฌ์กฐ๋Š” FIFO(Firtst In First Out)๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.์šฐ์„ ์ˆœ์œ„ ํ๋Š” ์ด๋Ÿฌํ•œ ํ์˜ ํŠน์„ฑ์„ ๊ฐ€์ง€๋ฉด์„œ ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ๊ฐ€ ์•„๋‹ˆ๋ผ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋จผ์ € ๊ฒฐ์ •ํ•˜๊ณ , ๊ทธ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํž™(Heap)์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.ํž™์€ ํ•ญ์ƒ ์ตœ๋Œ€๊ฐ’ ๋˜๋Š” ์ตœ์†Œ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•œ ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.์ตœ๋Œ€๊ฐ’ ํ˜น์€ ์ตœ์†Œ๊ฐ’์œผ๋กœ ๊ฐ€์žฅ ๋จผ์ € ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ์š”์†Œ, ์ฆ‰ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์š”์†Œ๊ฐ€ ๋ฃจํŠธ ๋…ธ๋“œ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€๋ชจ ๋…ธ๋“œ๊ฐ€ ํ•ญ์ƒ ์ž์‹ ๋…ธ๋“œ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ฑฐ์ฃ . ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌํ”„ ๋…ธ๋“œ์— ๋„ฃ๊ณ , ๋ฃจํŠธ(๊ฐ€์žฅ ์šฐ์„ ์ˆœ์œ„ ๋†’์€ ๋ฐ์ดํ„ฐ)๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์šฐ์„ ์ˆœ์œ„ ํ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์šฐ..
[Java] ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP, Dynamic Programming) / ๋ฐฑ์ค€ 12865๋ฒˆ / ๋ฐฐ๋‚ญ ๋ฌธ์ œ
ยท
โ˜•Java/์ฝ”๋”ฉํ…Œ์ŠคํŠธ
DP๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์‹ค๋งˆ๋ฆฌ๋ฅผ ์žก๊ณ  ์‹ถ๋‹ค๋ฉด์œ„ ์˜์ƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.๐Ÿ’ก ๋ฐฑ์ค€ 12865๋ฒˆ๐Ÿ”– # ๋ฌธ์ œ : ํ’€๋Ÿฌ๊ฐ€๊ธฐ ๐Ÿ”— ์ด ๋ฌธ์ œ๋Š” ์•„์ฃผ ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ์— ๊ด€ํ•œ ๋ฌธ์ œ์ด๋‹ค. ํ•œ ๋‹ฌ ํ›„๋ฉด ๊ตญ๊ฐ€์˜ ๋ถ€๋ฆ„์„ ๋ฐ›๊ฒŒ ๋˜๋Š” ์ค€์„œ๋Š” ์—ฌํ–‰์„ ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. ์„ธ์ƒ๊ณผ์˜ ๋‹จ์ ˆ์„ ์Šฌํผํ•˜๋ฉฐ ์ตœ๋Œ€ํ•œ ์ฆ๊ธฐ๊ธฐ ์œ„ํ•œ ์—ฌํ–‰์ด๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€์ง€๊ณ  ๋‹ค๋‹ ๋ฐฐ๋‚ญ ๋˜ํ•œ ์ตœ๋Œ€ํ•œ ๊ฐ€์น˜ ์žˆ๊ฒŒ ์‹ธ๋ ค๊ณ  ํ•œ๋‹ค. ์ค€์„œ๊ฐ€ ์—ฌํ–‰์— ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” N๊ฐœ์˜ ๋ฌผ๊ฑด์ด ์žˆ๋‹ค. ๊ฐ ๋ฌผ๊ฑด์€ ๋ฌด๊ฒŒ W์™€ ๊ฐ€์น˜ V๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ, ํ•ด๋‹น ๋ฌผ๊ฑด์„ ๋ฐฐ๋‚ญ์— ๋„ฃ์–ด์„œ ๊ฐ€๋ฉด ์ค€์„œ๊ฐ€ V๋งŒํผ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์•„์ง ํ–‰๊ตฐ์„ ํ•ด๋ณธ ์ ์ด ์—†๋Š” ์ค€์„œ๋Š” ์ตœ๋Œ€ K๋งŒํผ์˜ ๋ฌด๊ฒŒ๋งŒ์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฐ๋‚ญ๋งŒ ๋“ค๊ณ  ๋‹ค๋‹ ์ˆ˜ ์žˆ๋‹ค. ์ค€์„œ๊ฐ€ ์ตœ๋Œ€ํ•œ ์ฆ๊ฑฐ์šด ์—ฌํ–‰์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ๋‚ญ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌผ๊ฑด๋“ค์˜ ๊ฐ€์น˜์˜ ์ตœ๋Œ“๊ฐ’์„ ์•Œ๋ ค์ฃผ์ž. โŒจ๏ธ # ์ž…..
[Java] ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ / ๋ฐฑ์ค€ 1253๋ฒˆ
ยท
โ˜•Java/์ฝ”๋”ฉํ…Œ์ŠคํŠธ
๐Ÿ’ก ํˆฌ ํฌ์ธํ„ฐ: ๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ์—์„œ '๋‘ ๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 'ํŠน์ • ๊ตฌ๊ฐ„์„ ๋งŒ์กฑํ•˜๋Š” ๋ถ€๋ถ„ ๊ตฌ๊ฐ„'์„ ํšจ์œจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณดํ†ต ์™ผ์ชฝ ํฌ์ธํ„ฐ์™€ ์˜ค๋ฅธ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ฐ๊ฐ ํƒ์ƒ‰ ๋ฒ”์œ„์˜ ์‹œ์ž‘๊ณผ ๋์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.์™ผ์ชฝ ํฌ์ธํŠธ๋ฅผ ๊ณ ์ •ํ•œ ์ƒํƒœ์—์„œ ์˜ค๋ฅธ์ชฝ ํฌ์ธํ„ฐ๋ฅผ ์ด๋™ํ•˜๊ฑฐ๋‚˜, ์กฐ๊ฑด์— ๋”ฐ๋ผ ์™ผ์ชฝ ํฌ์ธํŠธ๋„ ์ด๋™ํ•˜๋ฉฐ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.ํ•œ ๋ฒˆ์˜ ๋ฐ˜๋ณต์œผ๋กœ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„ O(n)์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ ํฌ๊ธฐ์— ๋น„๋ก€ํ•ฉ๋‹ˆ๋‹ค.ํƒ์ƒ‰ ๋ฒ”์œ„ ๋‚ด์—์„œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋ฅผ ์ฐพ๊ฑฐ๋‚˜, ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ถ€๋ถ„ ๋ฐฐ์—ด์˜ ๊ธธ์ด ๋“ฑ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ์— ํ™œ์šฉ๋‹จ๊ณ„๋ฐฐ์—ด ๋˜๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์‹œ์ž‘ ์œ„์น˜์— ์ฒซ ๋ฒˆ์งธ ํฌ์ธํŠธ์™€ ๋‘ ๋ฒˆ์งธ ํฌ์ธํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.๋‘ ํฌ์ธํ„ฐ ์‚ฌ์ด์˜ ๊ตฌ๊ฐ„์„ ์กฐ์‚ฌํ•˜๋ฉฐ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ..
[Java] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection) ๊ธฐ๋ณธ ๊ฐœ๋…
ยท
โ˜•Java
๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด๋ž€? (Garbage Collection, GC)C/C++ ๊ฐ™์€ ์–ธ์–ด์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ `free()` ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ์ด ๋๋‚œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ Java์—์„œ๋Š” JVM์˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•Œ์•„์„œ ์ •๋ฆฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด๋ž€,JVM์˜ Heap ์˜์—ญ์—์„œ ๋™์ ์œผ๋กœ ํ• ๋‹นํ–ˆ๋˜ ๋ฉ”๋ชจ๋ฆฌ ์ค‘ํ•„์š” ์—†๊ฒŒ ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ์ฒด(garbage)๋ฅผ ๋ชจ์•„ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐฉ์ง€: ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋ฅผ ์žŠ์–ด๋ฒ„๋ ค ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋˜๋Š” ํ˜„์ƒ(OOM ์—๋Ÿฌ)์„ GC๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ: ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ๋กœ์ง ๋Œ€์‹  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜..