[๋ฐฑ์ค€] 1563๋ฒˆ: ๊ฐœ๊ทผ์ƒ(Java)
ยท
Algorithm/BaekJoon
Notion์— ์ •๋ฆฌํ•œ ๊ธ€์„ ์˜ฎ๊ธด ๊ฒƒ์ž…๋‹ˆ๋‹ค. 1563๋ฒˆ: ๊ฐœ๊ทผ์ƒ ๋ฐฑ์ค€์ค‘ํ•™๊ต์—์„œ๋Š” ํ•™๊ธฐ๊ฐ€ ๋๋‚  ๋ฌด๋ ต์— ์ถœ๊ฒฐ์‚ฌํ•ญ์„ ๋ณด๊ณ  ๊ฐœ๊ทผ์ƒ์„ ์ค„ ๊ฒƒ์ธ์ง€ ๋ง ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค. ์ด ํ•™๊ต๋Š” ์ด์ƒํ•ด์„œ ํ•™์ƒ๋“ค์ด ํ•™๊ต๋ฅผ ๋„ˆ๋ฌด ์ž์ฃผ ๋น ์ง€๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๊ทผ์ƒ์„ ์ฃผ๋Š” ์กฐ๊ฑด์ด ์กฐ๊ธˆ ๋… www.acmicpc.net ๋ฌธ์ œ ํ’€์ด ์™„์ „ํƒ์ƒ‰์„ ์ด์šฉํ•ด์•ผํ•˜์ง€๋งŒ, ์™„์ „ํƒ์ƒ‰๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ O(3^1000)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์žฌ๊ท€์  ์ ‘๊ทผ(DFS) + dp โ‡’ dp์˜ bottom-up๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์—ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ์ ํ™”์‹์„ ์ฐพ๋Š” ๊ฒƒ์ธ๋ฐ, ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด์ž. ํ•œ ํ•™๊ธฐ๋ฅผ 3์ผ์ด๋ผ๊ณ  ํ•˜์ž. ์ง€๊ฐ(late)๋Š” 2์ผ ์ด์ƒ์ด๋ฉด ์•ˆ๋˜๊ณ , ๊ฒฐ์„(absent)์€ ์—ฐ์† 3์ผ ์ด์ƒ์ด๋ฉด ์•ˆ๋œ๋‹ค. dp[idx][late][absent] 3..
[Java] ์นด์šดํŒ… ์ •๋ ฌ (Counting Sort)
ยท
Algorithm/BaekJoon
https://www.acmicpc.net/problem/10989 10989๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3 ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 โ‰ค N โ‰ค 10,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ๋ฐฑ์ค€ 10989๋ฒˆ ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ3 ๋ฌธ์ œ๋ฅผ Collections.sort()๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ–ˆ๋”๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค. ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ์•Œ์•„๋ณด์•˜๋”๋‹ˆ, Collections.sort()๋‚˜ Arrays.sort()๊ฐ™์€ ๋ฉ”์†Œ๋“œ๋Š” ํ‰๊ท  ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๐šถ(nlogn) ์ธ ๋ฐ˜๋ฉด์— Counting sort๋Š” ํ‰๊ท  ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๐šถ(๐‘›) ์ธ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. Arrays.sort()๋Š” ํ‰๊ท : ..
[๋ฐฑ์ค€] 1920๋ฒˆ : ์ˆ˜ ์ฐพ๊ธฐ - JAVA [์ž๋ฐ”] ์ด๋ถ„ ํƒ์ƒ‰ ๋ฌธ์ œ
ยท
Algorithm/BaekJoon
https://www.acmicpc.net/problem/1920 1920๋ฒˆ: ์ˆ˜ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1 โ‰ค N โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], โ€ฆ, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1 โ‰ค M โ‰ค 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค www.acmicpc.net ๋ฌธ์ œ ์ƒˆ ์นดํ…Œ๊ณ ๋ฆฌ์ธ ์ด๋ถ„ ํƒ์ƒ‰์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ์ธ ์ˆ˜ ์ฐพ๊ธฐ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ [์ ‘๊ทผ ๋ฐฉ๋ฒ•] ์ผ๋‹จ, ํ’€์ด ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ธฐ ์ „์— ์ด๋ถ„ ํƒ์ƒ‰(Binary Search)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์ด ์ „ ๋ฌธ์ œ๊นŒ์ง€ ์šฐ๋ฆฌ๊ฐ€ ๋ถ„ํ•  ์ •๋ณต์„ ์‚ดํŽด๋ณด์•˜๋‹ค. ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ์‹์˜ ๊ฒฝ์šฐ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๋‘˜ ์ด์ƒ์œผ๋กœ ๋‚˜๋ˆ„๋ฉด์„œ ๋‚˜๋ˆ ์ง„ ๋ถ€๋ถ„๋ฌธ์ œ์— ๋Œ€ํ•ด ํ’€๋ ธ๋‹ค๋ฉด ํ•ด๋‹น ๋ถ€๋ถ„์€ ๋๋‚ด๊ณ ,..
[๋ฐฑ์ค€] 1874๋ฒˆ : ์Šคํƒ ์ˆ˜์—ด - JAVA [์ž๋ฐ”]
ยท
Algorithm/BaekJoon
www.acmicpc.net/problem/1874 1874๋ฒˆ: ์Šคํƒ ์ˆ˜์—ด 1๋ถ€ํ„ฐ n๊นŒ์ง€์— ์ˆ˜์— ๋Œ€ํ•ด ์ฐจ๋ก€๋กœ [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ˆ˜์—ด [4, 3, 6, 8, 7, 5, 2, 1]์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. www.acmicpc.net ๋ฌธ์ œ ์Šคํƒ์˜ ์›๋ฆฌ๋งŒ ์ดํ•ดํ•œ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ [์ ‘๊ทผ ๋ฐฉ๋ฒ•] ์•„๋งˆ ์ด ๋ฌธ์ œ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•œ๋‹ค๋ฉด ๋ฌด์Šจ ๋ง์ธ๊ฐ€ ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ์ดํ•ด๋งŒ ํ•œ๋‹ค๋ฉด ์ •๋ง ์‰ฌ์šด ๋ฌธ์ œ๋‹ค. ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ณธ๋ฌธ์—์„œ๋„ ๋‚˜์™€์žˆ๋“ฏ์ด LIFO(ํ›„์ž…์„ ์ถœ) ํŠน์„ฑ์„ ๊ฐ–๊ณ ์žˆ๋‹ค. ์Šคํƒ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ดํ•ด๋Š” ๋‹ค์Œ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž€๋‹ค. ์ž๋ฐ” [JAVA]..
[๋ฐฑ์ค€] 1654๋ฒˆ : ๋žœ์„  ์ž๋ฅด๊ธฐ - JAVA [์ž๋ฐ”]
ยท
Algorithm/BaekJoon
https://www.acmicpc.net/problem/1654 1654๋ฒˆ: ๋žœ์„  ์ž๋ฅด๊ธฐ ์ฒซ์งธ ์ค„์—๋Š” ์˜ค์˜์‹์ด ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋žœ์„ ์˜ ๊ฐœ์ˆ˜ K, ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ๋žœ์„ ์˜ ๊ฐœ์ˆ˜ N์ด ์ž…๋ ฅ๋œ๋‹ค. K๋Š” 1์ด์ƒ 10,000์ดํ•˜์˜ ์ •์ˆ˜์ด๊ณ , N์€ 1์ด์ƒ 1,000,000์ดํ•˜์˜ ์ •์ˆ˜์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ญ์ƒ K โ‰ฆ N ์ด๋‹ค. ๊ทธ www.acmicpc.net ๋ฌธ์ œ ์ด๋ถ„ ํƒ์ƒ‰์˜ ์‘์šฉ ๋ฌธ์ œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ [์ ‘๊ทผ ๋ฐฉ๋ฒ•] ์ผ๋‹จ, ์ด ๋ฒˆ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์ „์— ์ด๋ถ„ ํƒ์ƒ‰ ์ค‘ Upper Bound ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ, ํ•ด๋‹น ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ํฌ์ŠคํŒ…์„ ๋จผ์ € ๋ณด์‹œ๊ณ  ์˜ค์‹œ๊ธฐ๋ฅผ ๋ฐ”๋ž€๋‹ค. https://st-lab.tistory.com/267 [๋ฐฑ์ค€] 10816๋ฒˆ : ์ˆซ์ž ์นด๋“œ 2 - JAVA [์ž๋ฐ”] https://ww..