๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

3๏ธโƒฃ Swift/Problem Solving110

[Swift Algorithm] ์˜ฅ์ƒ ์ •์› ๊พธ๋ฏธ๊ธฐ BOJ #6198 ๋ฌธ์ œ ์„ค๋ช… ๋„์‹œ์—๋Š” N๊ฐœ์˜ ๋นŒ๋”ฉ์ด ์žˆ๋‹ค. ๋นŒ๋”ฉ ๊ด€๋ฆฌ์ธ๋“ค์€ ๋งค์šฐ ์„ฑ์‹ค ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค๋ฅธ ๋นŒ๋”ฉ์˜ ์˜ฅ์ƒ ์ •์›์„ ๋ฒค์น˜๋งˆํ‚น ํ•˜๊ณ  ์‹ถ์–ดํ•œ๋‹ค. i๋ฒˆ์งธ ๋นŒ๋”ฉ์˜ ํ‚ค๊ฐ€ hi์ด๊ณ , ๋ชจ๋“  ๋นŒ๋”ฉ์€ ์ผ๋ ฌ๋กœ ์„œ ์žˆ๊ณ  ์˜ค๋ฅธ์ชฝ์œผ๋กœ๋งŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. i๋ฒˆ์งธ ๋นŒ๋”ฉ ๊ด€๋ฆฌ์ธ์ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๋นŒ๋”ฉ์˜ ์˜ฅ์ƒ ์ •์›์€ i+1, i+2, .... , N์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ž์‹ ์ด ์œ„์น˜ํ•œ ๋นŒ๋”ฉ๋ณด๋‹ค ๋†’๊ฑฐ๋‚˜ ๊ฐ™์€ ๋นŒ๋”ฉ์ด ์žˆ์œผ๋ฉด ๊ทธ ๋‹ค์Œ์— ์žˆ๋Š” ๋ชจ๋“  ๋นŒ๋”ฉ์˜ ์˜ฅ์ƒ์€ ๋ณด์ง€ ๋ชปํ•œ๋‹ค. ์˜ˆ) N=6, H = {10, 3, 7, 4, 12, 2}์ธ ๊ฒฝ์šฐ 1๋ฒˆ ๊ด€๋ฆฌ์ธ์€ 2, 3, 4๋ฒˆ ๋นŒ๋”ฉ์˜ ์˜ฅ์ƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 2๋ฒˆ ๊ด€๋ฆฌ์ธ์€ ๋‹ค๋ฅธ ๋นŒ๋”ฉ์˜ ์˜ฅ์ƒ์„ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค. 3๋ฒˆ ๊ด€๋ฆฌ์ธ์€ 4๋ฒˆ ๋นŒ๋”ฉ์˜ ์˜ฅ์ƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 4๋ฒˆ ๊ด€๋ฆฌ์ธ์€ ๋‹ค๋ฅธ ๋นŒ๋”ฉ์˜ ์˜ฅ์ƒ์„ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค. 5๋ฒˆ.. 2021. 8. 6.
[Swift Algorithm] ํƒ‘ BOJ #2493 ๋ฌธ์ œ ์„ค๋ช… KOI ํ†ต์‹ ์—ฐ๊ตฌ์†Œ๋Š” ๋ ˆ์ด์ €๋ฅผ ์ด์šฉํ•œ ์ƒˆ๋กœ์šด ๋น„๋ฐ€ ํ†ต์‹  ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์‹คํ—˜์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์‹คํ—˜์„ ์œ„ํ•˜์—ฌ ์ผ์ง์„  ์œ„์— N๊ฐœ์˜ ๋†’์ด๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ํƒ‘์„ ์ˆ˜ํ‰ ์ง์„ ์˜ ์™ผ์ชฝ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ์ฐจ๋ก€๋กœ ์„ธ์šฐ๊ณ , ๊ฐ ํƒ‘์˜ ๊ผญ๋Œ€๊ธฐ์— ๋ ˆ์ด์ € ์†ก์‹ ๊ธฐ๋ฅผ ์„ค์น˜ํ•˜์˜€๋‹ค. ๋ชจ๋“  ํƒ‘์˜ ๋ ˆ์ด์ € ์†ก์‹ ๊ธฐ๋Š” ๋ ˆ์ด์ € ์‹ ํ˜ธ๋ฅผ ์ง€ํ‘œ๋ฉด๊ณผ ํ‰ํ–‰ํ•˜๊ฒŒ ์ˆ˜ํ‰ ์ง์„ ์˜ ์™ผ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์‚ฌํ•˜๊ณ , ํƒ‘์˜ ๊ธฐ๋‘ฅ ๋ชจ๋‘์—๋Š” ๋ ˆ์ด์ € ์‹ ํ˜ธ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ์žฅ์น˜๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค. ํ•˜๋‚˜์˜ ํƒ‘์—์„œ ๋ฐœ์‚ฌ๋œ ๋ ˆ์ด์ € ์‹ ํ˜ธ๋Š” ๊ฐ€์žฅ ๋จผ์ € ๋งŒ๋‚˜๋Š” ๋‹จ ํ•˜๋‚˜์˜ ํƒ‘์—์„œ๋งŒ ์ˆ˜์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋†’์ด๊ฐ€ 6, 9, 5, 7, 4์ธ ๋‹ค์„ฏ ๊ฐœ์˜ ํƒ‘์ด ์ˆ˜ํ‰ ์ง์„ ์— ์ผ๋ ฌ๋กœ ์„œ ์žˆ๊ณ , ๋ชจ๋“  ํƒ‘์—์„œ๋Š” ์ฃผ์–ด์ง„ ํƒ‘ ์ˆœ์„œ์˜ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ(์™ผ์ชฝ ๋ฐฉํ–ฅ)์œผ๋กœ ๋™์‹œ์— ๋ ˆ์ด์ € ์‹ ํ˜ธ๋ฅผ ๋ฐœ์‚ฌํ•œ๋‹ค๊ณ  ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด,.. 2021. 8. 4.
[Swift Algorithm] ์Šคํƒ ์ˆ˜์—ด BOJ #1874 ๋ฌธ์ œ ์„ค๋ช… ์Šคํƒ (stack)์€ ๊ธฐ๋ณธ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘ ํ•˜๋‚˜๋กœ, ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ๋•Œ ์ž์ฃผ ์ด์šฉ๋˜๋Š” ๊ฐœ๋…์ด๋‹ค. ์Šคํƒ์€ ์ž๋ฃŒ๋ฅผ ๋„ฃ๋Š” (push) ์ž…๊ตฌ์™€ ์ž๋ฃŒ๋ฅผ ๋ฝ‘๋Š” (pop) ์ž…๊ตฌ๊ฐ€ ๊ฐ™์•„ ์ œ์ผ ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ์ž๋ฃŒ๊ฐ€ ์ œ์ผ ๋จผ์ € ๋‚˜์˜ค๋Š” (LIFO, Last in First out) ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. 1๋ถ€ํ„ฐ n๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ์Šคํƒ์— ๋„ฃ์—ˆ๋‹ค๊ฐ€ ๋ฝ‘์•„ ๋Š˜์–ด๋†“์Œ์œผ๋กœ์จ, ํ•˜๋‚˜์˜ ์ˆ˜์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, ์Šคํƒ์— pushํ•˜๋Š” ์ˆœ์„œ๋Š” ๋ฐ˜๋“œ์‹œ ์˜ค๋ฆ„์ฐจ์ˆœ์„ ์ง€ํ‚ค๋„๋ก ํ•œ๋‹ค๊ณ  ํ•˜์ž. ์ž„์˜์˜ ์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ์Šคํƒ์„ ์ด์šฉํ•ด ๊ทธ ์ˆ˜์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€, ์žˆ๋‹ค๋ฉด ์–ด๋–ค ์ˆœ์„œ๋กœ push์™€ pop ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. ์ž…๋ ฅ ์ฒซ ์ค„์— n (1 ≤ n ≤ 100,000)์ด.. 2021. 8. 4.
[Swift Algorithm] ์ œ๋กœ BOJ #10773 ๋ฌธ์ œ ์„ค๋ช… ๋‚˜์ฝ”๋” ๊ธฐ์žฅ ์žฌ๋ฏผ์ด๋Š” ๋™์•„๋ฆฌ ํšŒ์‹์„ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์žฅ๋ถ€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์ด๋‹ค. ์žฌํ˜„์ด๋Š” ์žฌ๋ฏผ์ด๋ฅผ ๋„์™€์„œ ๋ˆ์„ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์ธ๋ฐ, ์• ์„ํ•˜๊ฒŒ๋„ ํ•ญ์ƒ ์ •์‹ ์—†๋Š” ์žฌํ˜„์ด๋Š” ๋ˆ์„ ์‹ค์ˆ˜๋กœ ์ž˜๋ชป ๋ถ€๋ฅด๋Š” ์‚ฌ๊ณ ๋ฅผ ์น˜๊ธฐ ์ผ์‘ค์˜€๋‹ค. ์žฌํ˜„์ด๋Š” ์ž˜๋ชป๋œ ์ˆ˜๋ฅผ ๋ถ€๋ฅผ ๋•Œ๋งˆ๋‹ค 0์„ ์™ธ์ณ์„œ, ๊ฐ€์žฅ ์ตœ๊ทผ์— ์žฌ๋ฏผ์ด๊ฐ€ ์“ด ์ˆ˜๋ฅผ ์ง€์šฐ๊ฒŒ ์‹œํ‚จ๋‹ค. ์žฌ๋ฏผ์ด๋Š” ์ด๋ ‡๊ฒŒ ๋ชจ๋“  ์ˆ˜๋ฅผ ๋ฐ›์•„ ์ ์€ ํ›„ ๊ทธ ์ˆ˜์˜ ํ•ฉ์„ ์•Œ๊ณ  ์‹ถ์–ด ํ•œ๋‹ค. ์žฌ๋ฏผ์ด๋ฅผ ๋„์™€์ฃผ์ž! ์ž…๋ ฅ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ 100,000) ์ดํ›„ K๊ฐœ์˜ ์ค„์— ์ •์ˆ˜๊ฐ€ 1๊ฐœ์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ •์ˆ˜๋Š” 0์—์„œ 1,000,000 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ •์ˆ˜๊ฐ€ "0" ์ผ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์“ด ์ˆ˜๋ฅผ ์ง€์šฐ๊ณ , ์•„๋‹ ๊ฒฝ์šฐ ํ•ด๋‹น ์ˆ˜๋ฅผ ์“ด๋‹ค. ์ •์ˆ˜๊ฐ€ "0"์ผ ๊ฒฝ์šฐ์— ์ง€์šธ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๊ฐ€ ์žˆ์Œ์„ .. 2021. 8. 4.
[Swift Algorithm] ์Šคํƒ BOJ #10828 ๋ฌธ์ œ ์„ค๋ช… ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ์Šคํƒ์„ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋ช…๋ น์€ ์ด ๋‹ค์„ฏ ๊ฐ€์ง€์ด๋‹ค. push X: ์ •์ˆ˜ X๋ฅผ ์Šคํƒ์— ๋„ฃ๋Š” ์—ฐ์‚ฐ์ด๋‹ค. pop: ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ๋นผ๊ณ , ๊ทธ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค. size: ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. empty: ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค. top: ์Šคํƒ์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์˜ ์ˆ˜ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ช…๋ น์ด ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,0.. 2021. 8. 4.