๋ชฉ๋กํ”„๋กœ๊ทธ๋ž˜๋ฐ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด Swift (60)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[๋ฐฑ์ค€ 11006] ๋‚จ์šฑ์ด์˜ ๋‹ญ์žฅ (Swift)

11006๋ฒˆ: ๋‚จ์šฑ์ด์˜ ๋‹ญ์žฅ ์ž…๋ ฅ : ๋ชจ๋“  ๋‹ญ์˜ ๋‹ค๋ฆฌ์ˆ˜์˜ ํ•ฉ, ์ „์ฒด ๋‹ญ์˜ ์ˆ˜ ์ถœ๋ ฅ : ํ•œ ์ชฝ ๋‹ค๋ฆฌ๋งŒ ์žˆ๋Š” ๋‹ญ์˜ ์ˆ˜, ๋ฉ€์ฉกํ•œ ๋‹ญ์˜ ์ˆ˜ ํ’€์ด ๊ณ„ํš ๋‹ญ์˜ ๋‹ค๋ฆฌ๋Š” 2๊ฐœ์ด๋ฏ€๋กœ, ๋‹ญ์˜ ์ˆ˜ * 2๋ฅผ ํ•˜๋ฉด ์ •์ƒ์ ์ธ ๋‹ญ์˜ ๋‹ค๋ฆฌ์ˆ˜์˜ ํ•ฉ์ด ๋‚˜์˜จ๋‹ค. ์ •์ƒ ๋‹ค๋ฆฌ์ˆ˜์˜ ํ•ฉ์—์„œ ๋ชจ๋“  ๋‹ญ์˜ ๋‹ค๋ฆฌ์ˆ˜์˜ ํ•ฉ์„ ๋นผ๋ฉด ๋‹ค๋ฆฌ๊ฐ€ ์ž˜๋ฆฐ ๋‹ญ์˜ ์ˆ˜๊ฐ€ ๋œ๋‹ค. (ํ•œ์ชฝ ๋‹ค๋ฆฌ๊ฐ€ ์ž˜๋ ค ๋‚˜๋จธ์ง€ ํ•œ์ชฝ๋งŒ ๋‚จ์•„์žˆ์œผ๋ฏ€๋กœ) ๋‹ค๋ฆฌ๊ฐ€ ์ž˜๋ฆฐ ๋‹ญ์˜ ์ˆ˜๋ฅผ ๊ตฌํ–ˆ์œผ๋ฏ€๋กœ, ์ „์ฒด ๋‹ญ์˜ ์ˆ˜์—์„œ ๋‹ค๋ฆฌ๊ฐ€ ์ž˜๋ฆฐ ๋‹ญ์˜ ์ˆ˜๋ฅผ ๋นผ๋ฉด ๋ฉ€์ฉกํ•œ ๋‹ญ์˜ ์ˆ˜๋„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํ’€์ด (Swift) let count = Int(readLine()!)! (1...count).forEach { _ in let inputArr = readLine()!.split(separator: " ").map { Int($0)! ..

[๋ฐฑ์ค€ 10987] ๋ชจ์Œ์˜ ๊ฐœ์ˆ˜ (Swift)

[๋ฐฑ์ค€ 10987] ๋ชจ์Œ์˜ ๊ฐœ์ˆ˜ (Swift) 10987๋ฒˆ: ๋ชจ์Œ์˜ ๊ฐœ์ˆ˜ ์ž…๋ ฅ ๋ฌธ์ž์—ด์—์„œ ๋ชจ์Œ(a, e, i, o, u)์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ์„œ ์ถœ๋ ฅํ•˜๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ์ œ์ด๋‹ค. ํ’€์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด ๋ณด์•˜๋‹ค. ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋ฅผ ๋Œ๋ฉฐ ์–ด๋–ค ๋ฌธ์ž๊ฐ€ a, e, i, o, u ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๊ฐ™์€์ง€ ํ™•์ธํ•˜๊ธฐ (== ์—ฐ์‚ฐ์ž ํ™œ์šฉ) a, e, i, o, u ๋ฅผ ๋‹ด์€ ๋ชจ์Œ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ , ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋ฅผ ๋Œ๋ฉฐ ์–ด๋–ค ๋ฌธ์ž๊ฐ€ ๋ชจ์Œ ๋ฐฐ์—ด์— ํฌํ•จ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ (contains(_:) ํ™œ์šฉ) ๋‘ ํ’€์ด๋ฅผ ๋ชจ๋‘ ์ž‘์„ฑํ–ˆ๊ณ  ๋‘˜ ๋‹ค ๋ชจ๋‘ ์ž˜ ํ’€๋ ธ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์˜๋ฌธ์ด ์ƒ๊ฒผ๋˜ ๋ถ€๋ถ„์€ ๋‘ ํ’€์ด์˜ ์‹คํ–‰์‹œ๊ฐ„์ด ์™„์ „ํžˆ ๊ฐ™์•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‚˜๋Š” ๋‹น์—ฐํžˆ ํ’€์ด1์ด ๋” ๋น ๋ฅผ ๊ฒƒ์ด๋ผ ์˜ˆ์ƒํ•˜๊ณ  ํ’€์ด1์„ ๋จผ์ € ์‹œ๋„ํ•˜๊ณ , ๋งž์€ ๊ฑธ ํ™•์ธํ•œ ๋’ค ํ’€์ด..

[๋ฐฑ์ค€ 10811] ๋ฐ”๊ตฌ๋‹ˆ ๋’ค์ง‘๊ธฐ (Swift)

10811๋ฒˆ: ๋ฐ”๊ตฌ๋‹ˆ ๋’ค์ง‘๊ธฐ n๊ฐœ์˜ ๋ฐ”๊ตฌ๋‹ˆ๋“ค์ด ์žˆ์„ ๋•Œ, m๋ฒˆ ๋ฐ”๊ตฌ๋‹ˆ ์ˆœ์„œ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ๋งŒ๋“ ๋‹ค. m๊ฐœ์˜ ์‹œํ–‰๋งˆ๋‹ค i๋ถ€ํ„ฐ j๊นŒ์ง€๋ผ๋Š” ๋ฒ”์œ„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ i ≤ j ≤ n) i == j ์ผ ๋•Œ๋Š” ๋ฐ”๊ฟ€ ํ•„์š”๊ฐ€ ์—†๋‹ค. j - i == 1 ์ผ ๋•Œ๋Š” ๋‘ ์š”์†Œ์˜ ์ž๋ฆฌ๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค ``swapAt(*:*:)` ์‚ฌ์šฉ ๋‚˜๋จธ์ง€ ๊ฒฝ์šฐ์—๋Š” i๋ถ€ํ„ฐ j๊นŒ์ง€์˜ ๋ฐ”๊ตฌ๋‹ˆ๋“ค์„ ๋’ค์ง‘์–ด์•ผ ํ•œ๋‹ค. i ๋ถ€ํ„ฐ j๊นŒ์ง€ ๋’ค์ง‘๋Š” ๋ฐ”๊ตฌ๋‹ˆ๋“ค ์™ธ์— ๋‚˜๋จธ์ง€ ๋ฐ”๊ตฌ๋‹ˆ๋“ค์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋œ๋‹ค. ๋’ค์ง‘๋Š” ๋ฐ”๊ตฌ๋‹ˆ๋“ค์˜ ์•ž ๋ถ€๋ถ„ = head : ๊ทธ๋Œ€๋กœ ์œ ์ง€ ๋’ค์ง‘๋Š” ๋ฐ”๊ตฌ๋‹ˆ๋“ค = reversed reversed() ์‚ฌ์šฉ ๋’ค์ง‘๋Š” ๋ฐ”๊ตฌ๋‹ˆ๋“ค์˜ ๋’ท ๋ถ€๋ถ„ = tail : ๊ทธ๋Œ€๋กœ ์œ ์ง€ head + reversed + tail ์˜ ๋ถ€๋ถ„ ๋ฐฐ์—ด๋“ค์„ ๋ชจ๋‘ ํ•ฉ์ณ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ๋งŒ๋“  ๋‹ค์Œ, ๊ทธ ๋ฐฐ..

[Swift] BFS ์˜ˆ์ œ์™€ ํ’€์ด (๋ฐฑ์ค€ 2178 ๋ฏธ๋กœ ํƒ์ƒ‰)

[Swift] BFS ์˜ˆ์ œ์™€ ํ’€์ด (๋ฏธ๋กœ ํƒ์ƒ‰) BFS (Breadth First Search, ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰) ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋“ค์„ ์šฐ์„  ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹. ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜. 1950๋…„ ๋ฏธ๋กœ๋ฅผ ํƒˆ์ถœํ•˜๋Š” ๊ฐ€์žฅ ์งง์€ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ํƒ„์ƒํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ํ๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ •์„์ด๋‹ค. ์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ํ์— ๋„ฃ์œผ๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์„ ์ž…์„ ์ถœ์ด ๋˜์–ด ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๊ฒŒ ๋œ๋‹ค. O(n) ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค. (n = ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜) ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ ์‹ค์ œ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์€ DFS๋ณด๋‹ค BFS๊ฐ€ ๋น ๋ฅธ ํŽธ์ด๋‹ค. ๋™์ž‘ ๊ณผ์ • ํƒ์ƒ‰ ์‹œ์ž‘ ๋…ธ๋“œ๋ฅผ ์Šคํƒ์— ์‚ฝ์ž…ํ•˜๊ณ , ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค. ํ์—์„œ ๋…ธ๋“œ๋ฅผ ๊บผ๋‚ด, ํ•ด๋‹น ๋…ธ๋“œ์˜ ์ธ์ ‘ ๋…ธ๋“œ ์ค‘์—์„œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ ํ์— ์‚ฝ์ž…ํ•˜๊ณ  ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค. ๋งŒ์•ฝ ์ธ์ ‘ ๋…ธ๋“œ ์ค‘ ๋ฐฉ..

[Swift] DFS ์˜ˆ์ œ์™€ ํ’€์ด (Softeer ์žฅ์• ๋ฌผ ์ธ์‹ ํ”„๋กœ๊ทธ๋žจ)

[Swift] DFS ์˜ˆ์ œ์™€ ํ’€์ด (์žฅ์• ๋ฌผ ์ธ์‹ ํ”„๋กœ๊ทธ๋žจ) Softeer ์˜ˆ์ œ ์ถœ์ฒ˜: Softeer “์žฅ์• ๋ฌผ ์ธ์‹ ํ”„๋กœ๊ทธ๋žจ” (๋˜๋Š” ์ด์ฝ”ํ…Œ “์Œ๋ฃŒ์ˆ˜ ์–ผ๋ ค๋จน๊ธฐ” - ๋” ์‰ฌ์›€) ๋‘˜๋‹ค Swift๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค..ใ…  DFS ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ = ์ž์‹ ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹. ๋ฉ€๋ฆฌ ์žˆ๋Š” ๋…ธ๋“œ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜. (๊ทธ๋ž˜ํ”„์—์„œ ๊นŠ์€ ๋ถ€๋ถ„์„ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜) ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ : ํ•œ ๋ฒˆ ์ฒ˜๋ฆฌํ•œ ๋…ธ๋“œ๋ฅผ ๋‹ค์‹œ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋„๋ก ์ฒดํฌํ•˜๋Š” ๊ฒƒ. ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ์— ๊ธฐ์ดˆํ•œ๋‹ค. ์žฌ๊ท€๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. O(n) ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค. (n = ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜) โ—๏ธDFS๋Š” ์Šคํƒ์„ ์ด์šฉํ•˜๋ฉฐ ์‹ค์ œ ๊ตฌํ˜„์‹œ์—๋Š” ์žฌ๊ท€๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ œ ์ž์œจ์ฃผํ–‰ํŒ€ SW ์—”์ง€๋‹ˆ์–ด์ธ ๋‹น์‹ ์—๊ฒŒ ์žฅ์• ๋ฌผ๊ณผ ๋„๋กœ๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ..

[๋ฐฑ์ค€ 10539] ์ˆ˜๋นˆ์ด์™€ ์ˆ˜์—ด (Swift)

[๋ฐฑ์ค€ 10539] ์ˆ˜๋นˆ์ด์™€ ์ˆ˜์—ด 10539๋ฒˆ: ์ˆ˜๋นˆ์ด์™€ ์ˆ˜์—ด ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ์ˆ˜์—ด์ด ์ˆ˜์—ด A๊ฐ€ ์•„๋‹Œ, ์ˆ˜์—ด B๋ผ๋Š” ๊ฒƒ ์ด ํฌ์ธํŠธ์ด๋‹ค. ํ‰๊ท  ์‹์„ ๊ทธ๋Œ€๋กœ ์“ฐ๋ฉด ์•ˆ๋˜๊ณ , ํ‰๊ท  ์‹์„ ๋ณ€ํ˜•ํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜์—ด B์˜ ๊ธธ์ด๊ฐ€ 4์ด๊ณ  ์ฒซ ์š”์†Œ๊ฐ€ 3์ด๋ผ๋ฉด, ์ˆ˜์—ด A์˜ ์ฒซ ์š”์†Œ๋„ 3์ด๋‹ค. (์ฒซ ์š”์†Œ๋Š” 1๋กœ ๋‚˜๋ˆ„๋ฏ€๋กœ ๊ฐ’์ด ๊ฐ™์Œ) ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆ˜์—ด B์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ 2๋ผ๋ฉด, ์ด ๊ฐ’์€ (์ˆ˜์—ด A์˜ ์ฒซ ์š”์†Œ + ์ˆ˜์—ด A์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ) / 2 ์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์ˆ˜์—ด A์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๊ฐ€ 3์ด๋ฏ€๋กœ, ์ˆ˜์—ด A์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋Š” 2 * 2 - 3 = 1์ด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆ˜์—ด A์˜ n๋ฒˆ์งธ ์š”์†Œ = (์ˆ˜์—ด B์˜ n๋ฒˆ์งธ ์š”์†Œ * n) - ์ˆ˜์—ด A์˜ n-1 ๋ฒˆ์งธ ์š”์†Œ๊นŒ์ง€์˜ ์ดํ•ฉ ์ด ๋œ๋‹ค. ํ’€์ด let count = Int(read..