[Java] ==์™€ equals()์˜ ์ฐจ์ด์  (feat. String Pool)
ยท
Java
Java์—์„œ String์€ ๊ฐ์ฒด์ด๋‹ค. String์€ ๊ฐœ๋ฐœ์—์„œ ์ž์ฃผ ์“ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŠน๋ณ„ํžˆ ์ตœ์ ํ™”๋œ ์˜ˆ์™ธ์  ์กด์žฌ์ด๋‹ค.๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฐธ์กฐ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ๊ฐ์ฒด๊ฐ€ ๋™์ผํ•œ์ง€ ๋น„๊ต๋ฅผ ์œ„ํ•ด์„  equals()๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ๋œ๋‹ค๊ณ  ์ด๋ฏธ ๋‹ค ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํŠน์ • ์ƒํ™ฉ์—์„œ๋Š” ==๊ฐ€ true๊ฐ€ ๋˜๊ณ , ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ฐ™์€ ๋ฌธ์ž์—ด์ธ๋ฐ false๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค. ์˜ค๋Š˜์€ ์™œ ๊ฐ™์€ ๋ฌธ์ž์—ด์ธ๋ฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ค๋Š”์ง€, String Pool์ด ์‹ค์ œ๋กœ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€, ์–ธ์ œ == ๋น„๊ต๊ฐ€ ์œ„ํ—˜ํ•ด์ง€๋Š”์ง€์— ๋Œ€ํ•œ ๋‚ด๋ถ€ ๊ณผ์ •์„ ๊นŠ์ด ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ด๋‹ค. ๋จผ์ € ==์™€ equals์˜ ์ •์˜๋ถ€ํ„ฐ ์•Œ์•„๋ณด์ž ==์™€ equals()๋Š” ๋ญ๊ฐ€ ๋‹ค๋ฅธ๊ฐ€?== ์—ฐ์‚ฐ์ž: ๋‘ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š”์ง€ ๋น„๊ตํ•œ๋‹ค. (๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์ฃผ์†Œ๊ฐ’)equals() ๋ฉ”์„œ๋“œ:..
[๋ฐฑ์ค€/JAVA] 2302 - ๊ทน์žฅ ์ขŒ์„
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜
1. ๋ฌธ์ œhttps://www.acmicpc.net/problem/2302 2. ํ’€์ด๊ณ ์ •์„์„ ์ œ์™ธํ•œ ๊ตฌ๊ฐ„ ์‚ฌ์ด์— ์–‘์ชฝ์œผ๋กœ๋งŒ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.์ฒ˜์Œ์—๋Š” ์ด๊ฒŒ ์™œ DP ๋ฌธ์ œ์ผ๊นŒ? ๊ณ ๋ฏผํ–ˆ์—ˆ๋Š”๋ฐ, ๊ฒฐ๊ตญ ์ž๋ฆฌ ์ž๋ฆฌ์— ์•‰๋Š” ๊ฒƒ๊ณผ ์˜†์ž๋ฆฌ์— ์•‰๋Š” 2๊ฐ€์ง€ ์„ ํƒ์€ ๋ฐ”๋กœ ์ด์ „ ์‚ฌ๋žŒ์ด ์–ด๋”” ์•‰๋А๋ƒ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋˜๋ฏ€๋กœ ์ ํ™”์‹์„ ์„ธ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ขŒ์„์ด n๊ฐœ ์žˆ๊ณ , ๋‚ด๊ฐ€ ์•‰์„ ์ž๋ฆฌ๊ฐ€ n๋ฒˆ์งธ์— ์œ„์น˜ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๋ฉด,1) n ์ž๋ฆฌ์— ์•‰๋Š” ๊ฒฝ์šฐ: n-1๋ฒˆ์งธ๊นŒ์ง€ ์•‰์€ ๊ฐ’2) n-1 ์ž๋ฆฌ์— ์•‰๋Š” ๊ฒฝ์šฐ: n-2๋ฒˆ์งธ๊นŒ์ง€ ์•‰์€ ๊ฐ’ ์ฆ‰, ์ขŒ์„ ์„ ํƒ ์—ฌ๋ถ€ ์ƒํƒœ๊ฐ’์— ๋”ฐ๋ผ ์ด์ „ n-1, n-2๊นŒ์ง€์˜ ์„ ํƒ์ด ๋‹ต์ด ๋œ๋‹ค. ์—ฌ๊ธฐ์„œ n=1,2,3... ๋Š˜๋ ค๊ฐ€๋ฉด์„œ ์ˆซ์ž๋ฅผ ๋‚˜์—ดํ•ด๋ณด๋ฉด ๊ฒฐ๊ตญ ์ž‘์€ ๋ฌธ์ œ์˜ ํ•ด๋‹ต์„ ๊ตฌํ•˜๋ฉด n๊นŒ์ง€์˜ ๋ฌธ์ œ๋„..
[๋ฐฑ์ค€/JAVA] 2156 - ํฌ๋„์ฃผ ์‹œ์‹
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜
1. ๋ฌธ์ œhttps://www.acmicpc.net/problem/2156 2. ํ’€์ดํฌ๋„์ฃผ๋ฅผ ์—ฐ์† 2๋ฒˆ ๋งˆ์‹ค ์ˆ˜ ์žˆ์„ ๋•Œ ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์–‘์˜ ํฌ๋„์ฃผ๋ฅผ ์‹œ์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด 6๊ฐœ์˜ ์ž”์ด 6, 10, 13, 9, 8, 1 ๋งŒํผ์˜ ํฌ๋„์ฃผ๊ฐ€ ๋“ค์–ด์žˆ์„ ๋•Œ 1๋ฒˆ์งธ, 2๋ฒˆ์งธ, 4๋ฒˆ์งธ, 5๋ฒˆ์งธ ์ž”์„ ์„ ํƒํ•˜๋ฉด ์ตœ๋Œ€๋กœ 33์„ ๋งˆ์‹ค ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ํ•จ์ •์€ ๋ฐ”๋กœ ์—ฐ์†ํ•ด์„œ ๋ช‡ ์ž” ๋งˆ์…จ๋Š”์ง€๋ฅผ ์–ด๋–ป๊ฒŒ ๋”ฐ์ง€๋А๋ƒ์ด๋‹ค.๋‹จ์ˆœํžˆ ๋งˆ์‹ค๊นŒ, ๋ง๊นŒ 2๊ฐ€์ง€ ์กฐ๊ฑด์œผ๋กœ๋Š” ์•ˆ ํ’€๋ฆฐ๋‹ค. DP์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ˜„์žฌ ์„ ํƒ์ด '๊ณผ๊ฑฐ ์„ ํƒ'์— ์˜ํ–ฅ์„ ๋ฐ›๋Š”๊ฐ€์ด๋‹ค.์—ฌ๊ธฐ์„œ๋Š” 3์ž” ์—ฐ์† ๊ธˆ์ง€ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์ž”์„ ๋งˆ์‹œ๋ ค๋ฉด ์ด์ „ 1~2๊ฐœ ์ž” ์ƒํƒœ๊ฐ€ ์–ด๋–ค์ง€ ๋ฐ˜๋“œ์‹œ ์ฒดํฌํ•ด์•ผ ํ•œ๋‹ค.์šฐ์„  ์ƒํƒœ(State)๋Š” ์—ฐ์†์œผ๋กœ ๋ช‡ ์ž” ๋งˆ์…จ๋Š”์ง€์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ƒํƒœ..
[๋ฐฑ์ค€/JAVA] 9465 - ์Šคํ‹ฐ์ปค
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜
1. ๋ฌธ์ œhttps://www.acmicpc.net/problem/9465 2. ํ’€์ด์ด ๋ฌธ์ œ๋Š” 2*n ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์Šคํ‹ฐ์ปค์— ๊ฐ๊ฐ ์ ์ˆ˜๊ฐ€ ๋ถ€์—ฌ๋˜์–ด ์žˆ์„ ๋•Œ, ์ ์ˆ˜์˜ ์ดํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋„๋ก ์Šคํ‹ฐ์ปค๋ฅผ ๋–ผ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.ํ•˜๋‚˜์˜ ์Šคํ‹ฐ์ปค๋ฅผ ๋œฏ๊ฒŒ ๋˜๋ฉด ์ธ์ ‘ํ•œ ์Šคํ‹ฐ์ปค๋Š” ์ฐข์–ด์ ธ์„œ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. ์ฆ‰, ๋Œ€๊ฐ์„ ์œผ๋กœ ๋œฏ๊ฑฐ๋‚˜ ํ•œ ์นธ์„ ๊ฑด๋„ˆ ๋›ฐ์–ด์„œ ๋œฏ์„ ์ˆ˜ ์žˆ๋‹ค.์ขŒ์ธก 1์—ด์—์„œ๋ถ€ํ„ฐ ์Šคํ‹ฐ์ปค๋ฅผ ๋œฏ๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, ํ˜„์žฌ ์–ด๋–ค ์Šคํ‹ฐ์ปค๋ฅผ ์„ ํƒํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋‹ค์Œ 2์—ด์—์„œ์˜ ์„ ํƒ์— ์˜ํ–ฅ์„ ์ฃผ๊ฒŒ ๋œ๋‹ค.1์—ด์— ์œ„์น˜ํ•œ(์œ„์—์„œ๋ถ€ํ„ฐ) 50, 30 ์ค‘์— 50์ด ๋” ํฌ๋‹ˆ๊นŒ ์šฐ์„  ์„ ํƒํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž.๊ทธ๋Ÿผ 50๊ณผ ์ธ์ ‘ํ•œ 30, 10์€ ์ฐข์–ด์ง€๋ฏ€๋กœ ๋‹ค์Œ์— ์„ ํƒํ•  ์ˆ˜ ์—†๋‹ค.2์—ด์—์„œ ๋‚จ์€ ์Šคํ‹ฐ์ปค๋Š” 50์„ ์„ ํƒํ•œ๋‹ค๋ฉด ๋˜‘๊ฐ™์ด ์ธ์ ‘ํ•œ 10, 70์€ ..
[๋ฐฑ์ค€/JAVA] 11057 - ์˜ค๋ฅด๋ง‰ ์ˆ˜
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜
1. ๋ฌธ์ œhttps://www.acmicpc.net/problem/11057 2. ํ’€์ด์ด ๋ฌธ์ œ ๋ณด์ž๋งˆ์ž 10844๋ฒˆ ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฐ๋‚ฌ๋‹ค.์ˆซ์ž์˜ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ์— ์˜ํ•ด ๋‹ค์Œ ์ˆ˜๊ฐ€ ์ •ํ•ด์ง€๋Š” ํŒจํ„ด์ด ๋น„์Šทํ•œ๊ฑฐ๊ฐ™๋‹ค.10844 ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜ ํ’€์ด ์ž๋ฆฟ์ˆ˜ DP ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋Š” N์„ ๋Š˜๋ ค๊ฐ€๋ฉด์„œ ๊ทœ์น™์„ ์ฐพ๋Š” ์ ‘๊ทผ๋ณด๋‹ค๋Š”, ์–ด๋–ค ์ƒํƒœ(State)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทœ์น™์„ ์จ์•ผ ํ•˜๋Š”์ง€ ๊ฐ์„ ์žก์•„์•ผ ํ•œ๋‹ค.์ƒํƒœ ์ „์ด๊ฐ€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š”์ง€, ๊ทœ์น™์„ ๋งŒ์กฑํ•˜๋Š” ์กฐํ•ฉ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์„ธ์•ผ ํ•œ๋‹ค. (์ด ๊ณผ์ •์ด ๋„ˆ๋ฌด ์–ด๋ ต๊ธด ํ•˜๋‹ค..) ์ด ๋ฌธ์ œ์—์„œ ์ƒํƒœ(State)๋Š” 2๊ฐ€์ง€์ด๋‹ค.์ˆซ์ž์˜ ๊ธธ์ด๋งˆ์ง€๋ง‰ ์ˆซ์ž๊ทธ ๋‹ค์Œ์œผ๋กœ ์ƒํƒœ๊ฐ€ ์–ด๋–ค ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ์ฐพ์•„๋ณด์ž.๊ธธ์ด๊ฐ€ n์ด๊ณ  ๋งˆ์ง€๋ง‰ ์ˆซ์ž๊ฐ€ i์ธ ์˜ค๋ฅด๋ง‰ ์ˆ˜๋ฅผ ์ฐพ์„ ๋•Œ ๋ฐ”๋กœ ์ด์ „(n-1) ์ˆ˜์˜ ๋งˆ..
[๋ฐฑ์ค€/JAVA] 10844 - ์‰ฌ์šด ๊ณ„๋‹จ ์ˆ˜
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜
1. ๋ฌธ์ œhttps://www.acmicpc.net/problem/10844 2. ํ’€์ด์ธ์ ‘ํ•œ ๋ชจ๋“  ์ž๋ฆฌ์˜ ์ฐจ์ด๊ฐ€ 1์ธ ์ˆ˜๋ฅผ ๊ณ„๋‹จ ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰ ๋‹ค์Œ ์˜ฌ ์ˆซ์ž๋Š” ์ด์ „์˜ ์ˆซ์ž๋ณด๋‹ค 1์ด ์ž‘๊ฑฐ๋‚˜ ์ปค์•ผํ•œ๋‹ค.๊ทธ๋ฆฌ๊ณ  0์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ˆ˜๋Š” ๊ณ„๋‹จ ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋์ž๋ฆฌ ์ˆซ์ž์˜ ์˜ํ•ด ๋‹ค์Œ ์ˆซ์ž๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๊ตฌ์กฐ์ด๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด 1234 ์ˆซ์ž์—์„œ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ '4'์ด๊ณ , ๊ทธ ์•ž ์ˆซ์ž๋Š” 3 ๋˜๋Š” 5์ด์–ด์•ผ๋งŒ ํ•œ๋‹ค.1234512545์ด๋ฏธ ์•ž ์ˆซ์ž๊ฐ€ 3์ด๋ฏ€๋กœ ๋‹ค์Œ ์˜ฌ ์ˆซ์ž๋Š” 5๋ฐ–์— ์—†๋‹ค. ๋งŒ์•ฝ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๊ฐ€ 0์ด๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?1010์•ž๋’ค ์ˆซ์ž๋Š” ๋ฌด์กฐ๊ฑด 1๋ฐ–์— ๋ชป ์˜จ๋‹ค. ๋งŒ์•ฝ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๊ฐ€ 9๋ผ๋ฉด789์•ž๋’ค ์ˆซ์ž๋Š” ๋ฌด์กฐ๊ฑด 8๋ฐ–์— ๋ชป ์˜จ๋‹ค. ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์‰ฝ๊ฒŒ ์ ‘๊ทผํ–ˆ๋Š”๋ฐ.. dp..
[๋ฐฑ์ค€/JAVA] 9095 - 1, 2, 3 ๋”ํ•˜๊ธฐ
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜
1. ๋ฌธ์ œhttps://www.acmicpc.net/problem/9095 2. ํ’€์ด์ด ๋ฌธ์ œ๋Š” DP๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ์ž‘์€ ๋ฌธ์ œ๊ฐ€ ๋ฐ˜๋ณต๋˜๊ณ  ํ•ด๋‹น ์ตœ์  ๊ฒฐ๊ณผ๊ฐ’์„ ํ†ตํ•ด ์ตœ์ข… ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ DP์˜ ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค.1) Overlapping Subproblems (๊ฒน์น˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ)2) Optimal Substructure (์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ) ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด์ž. ์šฐ์„  dp[1]์€ 1๋กœ๋งŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 1๊ฐ€์ง€์ด๋‹ค. 1) n = 11dp[1] = 1 2) n = 21 + 12dp[2] = 2 3) n = 31 + 1 + 12 + 11 + 23dp[3] = 4 4) n = 41 + 1 + 1 + 12 + 1 + 11 + 2 + 13 + 11 + 1 + 22 + 21 + 3dp[4] = 7 ..
[๋ฐฑ์ค€/JAVA] 1463 - 1๋กœ ๋งŒ๋“ค๊ธฐ
ยท
์•Œ๊ณ ๋ฆฌ์ฆ˜
1. ๋ฌธ์ œhttps://www.acmicpc.net/problem/1463 2. ํ’€์ด์ด ๋ฌธ์ œ๋Š” DP๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค. DP๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š”์ง€ ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ?DP์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด 2๊ฐ€์ง€ ์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜์–ด์•ผ ํ•œ๋‹ค. 1) Overlapping Subproblems (๊ฒน์น˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ)2) Optimal Substructure (์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ) ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆซ์ž 5๋ฅผ 1๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. 5 -> 4 -> 3 -> 2 -> 15 -> 4 -> 3 -> 15 -> 4 -> 2 -> 1 ์ˆซ์ž 5๋ฅผ 1๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฑฐ์น˜๋Š” ๊ณผ์ •์ด ์—ฌ๋Ÿฌ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์žˆ์ง€๋งŒ, ๊ทธ ์ด์ „์˜ ์ˆซ์ž๋“ค์ด 1์ด ๋˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ 1) Overlapping Subp..