Swift Data Structure And Algorithm 148

๋ฌธ์ž์—ด ์••์ถ•

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ๋ฌธ์ž์—ด์ด ๋ฐ”๋€”๋•Œ ๋งˆ๋‹ค ๊ฐœ์ˆ˜๋ฅผ ํŒ๋‹จํ•˜์—ฌ ๋™์ผํ•œ ๊ฐœ์ˆ˜๊ฐ€ 1๊ฐœ๋ผ๋ฉด ์•ŒํŒŒ๋ฒณ๋งŒ ์ถœ๋ ฅํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ๊ฐœ์ˆ˜์™€ ์•ŒํŒŒ๋ฒณ์„ ๊ฐ™์ด ์ถœ๋ ฅํ•จ์œผ๋กœ์จ, O(N) ์‹œ๊ฐ„๋ณต์žก๋„๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // CompressionString // // Created by ์ด์˜์žฌ on 2022/03/10. //MARK: - ๋ฌธ์ž์—ด ์••์ถ• //MARK: - Framework import Foundation //MARK: - Function func solution() -> Void { //MARK: - Input guard let str = readLine() else { return } var result: String = "" var count:..

ํŒฐ๋ฆฐ๋“œ๋กฌ ์กฐ์‚ฌ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ž€ ๊ฑฐ๊พธ๋กœ ์ˆœํšŒํ•ด๋„ ๋™์ผํ•œ ๋ฌธ์ž์—ด์„ ๋งํ•จ ๊ฒฐ๊ตญ ์–‘๋์ด ์„œ๋กœ ๋Œ€์นญ๋ผ์•ผ ํ•˜๋ฏ€๋กœ, ์•ž๊ณผ ๋’ค๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ˆœํšŒํ•˜๋ฉด์„œ ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ํŒŒ์•…ํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // Palindrome // // Created by ์ด์˜์žฌ on 2022/03/10. //MARK: - ํŒฐ๋ฆฐ๋“œ๋กฌ ์กฐ์‚ฌ //MARK: - Framework import Foundation //MARK: - Function func solution() -> Void { //MARK: - Input guard let str: String = readLine() else { return } var isPalindrome: Bool = true var s..

๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ Stack ์ž๋ฃŒ๊ตฌ์กฐ, LIFO๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ์—ญ์œผ๋กœ ์ €์žฅํ•จ. 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // ReverseString // // Created by ์ด์˜์žฌ on 2022/03/10. //MARK: - ๋ฌธ์ž์—ด ๋’ค์ง‘๊ธฐ //MARK: - Framework import Foundation //MARK: - Function func solution() -> Void { //MARK: - Input guard let str = readLine() else { return } var result: String = "" var stack: [Character] = [] //MARK: - Process for char in str { st..

๊ณผ์ œ๋ฌผ ๋ง์น˜๊ธฐ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์—์„œ ๊ณต๋ฐฑ์„ ์ œ์™ธํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์— ์ €์žฅํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // Homework // // Created by ์ด์˜์žฌ on 2022/03/10. //MARK: - ๊ณผ์ œ๋ฌผ ๋ง์น˜๊ธฐ //MARK: - Framework import Foundation //MARK: - Function func solution() -> Void { //MARK: - Input guard let str = readLine() else { return } var result: String = "" //MARK: - Process for char in str { if char == " " { continue } re..

๋Œ€์†Œ๋ฌธ์ž ๋ณ€ํ™˜

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ASCII ์ฝ”๋“œ ๊ฐ’ ๋น„๊ต๋ฅผ ํ†ตํ•ด ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๋ณ€ํ™˜ Swift์—์„œ๋Š” Character์˜ ASCII ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š” character.asciiValue๋ฅผ ํ†ตํ•ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ASCII -> Character๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Character(UnicodeScalar(.asciiValue))๋ฅผ ํ†ตํ•ด ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ. 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // ConvertAlpha // // Created by ์ด์˜์žฌ on 2022/03/10. //MARK: - ๋Œ€์†Œ๋ฌธ์ž ๋ณ€ํ™˜ //MARK: - Framework import Foundation //MARK: - Function func solution() -> Void { //M..

chebyshevtheo

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ํŠน์ • ์ˆซ์ž๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋ณ„ํ•˜๋Š” ๊ฒƒ์€ ์ œ๊ณฑ๊ทผ๊นŒ์ง€ ์ง์ ‘ ๋‚˜๋ˆ„์–ด๋ณด๋Š” ๊ฒƒ์ด ๋น ๋ฅด์ง€๋งŒ, ํŠน์ • ๋ฒ”์œ„๋‚ด์˜ ๋ชจ๋“  ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๊ฐ€ O(N log N)์œผ๋กœ ๋” ํšจ์œจ์ ์ž„ ๋”ฐ๋ผ์„œ 2๋ถ€ํ„ฐ 2 * n ๊นŒ์ง€์˜ ๋ชจ๋“  ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ , n + 1 ๋ถ€ํ„ฐ 2 * n(n๋ณด๋‹ค ํฌ๊ณ  2 * n ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€) ์†Œ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // Chebyshevtheo // // Created by ์ด์˜์žฌ on 2022/03/08. //MARK: - chebyshevtheo //MARK: - Framework import Foundation //MARK: - Function func g..

pfactorization

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์†Œ์ธ์ˆ˜ ๋ถ„ํ•ด๋Š” ์–ด๋– ํ•œ ์ˆ˜๋ฅผ ์†Œ์ˆ˜๋กœ ๋ถ„ํ•ดํ•˜๋Š” ๊ฒƒ์„ ๋งํ•จ ๊ฐ€์žฅ ์ž‘์€ ์†Œ์ˆ˜์ธ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ํ•ด๋‹น ์ˆซ์ž๊ฐ€ 1์ด๋  ๋•Œ๊นŒ์ง€ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ๋‚˜๋ˆ„๊ฒŒ ๋˜๋ฉด, ์†Œ์ธ์ˆ˜ ๋ถ„ํ•ด๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ 2๋กœ ๋‚˜๋ˆ„์–ด์ง€์ง€ ์•Š๋Š” ๊ฒƒ์€ 4๋กœ ๋‚˜๋ˆ„์–ด์ง€์ง€ ์•Š๋“ฏ์ด 3, 5, 7 ๋ชจ๋‘ ๋งˆ์ฐฌ๊ฐ€์ง€์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // Pfactorization // // Created by ์ด์˜์žฌ on 2022/03/08. //MARK: - pfactorization //MARK: - Framework import Foundation //MARK: - Function func solution() -> Void { //MARK: - Input guard let N:..

fmttalpha

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์‹œ์ž‘๊ณผ ๋์€ 1๋กœ ๊ณ ์ •๋˜์–ด ์žˆ๊ณ , n - 1, n, n + 1๋กœ๋งŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด๊ณผ x๋ถ€ํ„ฐ y๋กœ ์ตœ์†Œํ•œ์˜ ์ด๋™ํšŸ์ˆ˜ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผํ•จ ๊ทœ์น™์„ ์ฐพ์•„์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด์ง€๋งŒ, ๊ทœ์น™์„ ์ฐพ๋Š” ๊ฒƒ์ด ๋งค์šฐ ๊นŒ๋‹ค๋กœ์›€ y - x(๋‘ ์ง€์ ์˜ ๊ฑฐ๋ฆฌ)๊ฐ€ 1์ด๊ฑฐ๋‚˜ 2๋ฉด ์‹œ์ž‘๊ณผ ๋์ด 1๋กœ ๊ณ ์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ๊ฐ๊ฐ 1๊ณผ 2๊ฐ€ ์ตœ์†Œ ์ด๋™ํšŸ์ˆ˜ ๋‘ ์ง€์ ์˜ ๊ฑฐ๋ฆฌ๊ฐ€ 3์ด์ƒ์ธ ๊ฒฝ์šฐ๋ถ€ํ„ฐ ์ง์ ‘ ์†์œผ๋กœ ์จ๋‚ด๋ ค๊ฐ€ ๋ณด๋ฉด, ๊ฐ ์ด๋™ํšŸ์ˆ˜์— ๋Œ€ํ•œ y-x(๋‘ ์ง€์ ์˜ ๊ฑฐ๋ฆฌ)์˜ ์ตœ๋Œ€๊ฐ’(maxDistance)๋“ค์„ ๋น„๊ตํ•จ์œผ๋กœ์จ ๊ทœ์น™์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ y - x(maxDistance)๊ฐ€ 4, 6, 9, 12์ผ ๋•Œ๋ฅผ ๊ธฐ์ ์œผ๋กœ ์ด๋™ํšŸ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ๊ทธ ์ฃผ๊ธฐ๊ฐ€ 2๋ฒˆ์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Œ 5. ์ „..

streetree

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ๊ฐ ๋‚˜๋ฌด์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ณ , ๊ฐ€๊นŒ์šด ์œ„์น˜(์˜ค๋ฆ„์ฐจ์ˆœ)๋กœ ์ฃผ์–ด์ง ๋”ฐ๋ผ์„œ ๊ฐ ์ •์ˆ˜์˜ ์ฐจ์— ๋Œ€ํ•œ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฐ„๊ฒฉ์œผ๋กœ ์ตœ์†Œํ•œ์˜ ๋‚˜๋ฌด๋ฅผ ์‹ฌ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Œ ๊ฐ€๋กœ์ˆ˜์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜์˜ ์ตœ๊ณ  ํฌ๊ธฐ๊ฐ€ 1,000,000,000 ์ด๋ฏ€๋กœ, ์™„์ „ ํƒ์ƒ‰์œผ๋กœ ํ•ด๋‹น ๋‚˜๋ฌด๊ฐ€ ์‹ฌ์–ด์ ธ ์žˆ๋Š”์ง€ ํ™•์ธ ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์•…์˜ ๊ฒฝ์šฐ O(N)์œผ๋กœ(์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๊ฐ€ 1์ธ ๊ฒฝ์šฐ) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒฝ์šฐ, ์‹œ๊ฐ„ ๋‚ด์— ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ ๋”ฐ๋ผ์„œ, ์ฃผ์–ด์ง„ ์ •์ˆ˜ ์ค‘ ์ตœ๋Œ€๊ฐ’๊ณผ ์ตœ์†Œ๊ฐ’์˜ ์ฐจ์ด๋ฅผ ๊ฐ™์€ ๊ฐ„๊ฒฉ(์ตœ๋Œ€๊ณต์•ฝ์ˆ˜)๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋˜๋ฉด, ์ตœ๋Œ€๋กœ ํ•„์š”ํ•œ ๊ฐ„๊ฒฉ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ  + 1์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์ด ๋‚˜๋ฌด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ. ์ด๋ฏธ ์‹ฌ์–ด์ ธ ์žˆ๋Š” ๋‚˜๋ฌด์˜ ๊ฐœ์ˆ˜๋Š” ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์กŒ์œผ..

combinationzero

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ๋ฌธ์ œ์˜ ํฌ๊ธฐ๊ฐ€ 1,000,000 ์ด๋ฏ€๋กœ 1,000,000 ํŒฉํ† ๋ฆฌ์–ผ์„ ์—ฐ์‚ฐํ•  ์ˆ˜ ์—†์„ ๋ฟ๋”๋Ÿฌ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜ ์ž๋ฃŒํ˜•๋„ ์—†์Œ ๋”ฐ๋ผ์„œ, ๋‹ค๋ฅธ ์‹œ์„ ์œผ๋กœ ์ ‘๊ทผ์„ ํ•ด์•ผํ•จ ๋์ž๋ฆฌ 0์˜ ๊ฐœ์ˆ˜๋Š” 10์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ์ฆ‰, 2์™€ 5์˜ ๊ณฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— n ๊ณผ m์— ๋Œ€ํ•˜์—ฌ 2์™€ 5๋กœ ๊ฐ๊ฐ ๋ชซ์ด 1์ด ๋  ๋•Œ ๊นŒ์ง€ ๋‚˜๋ˆ„๋ฉด์„œ 2์™€ 5์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•จ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, Combination์˜ ๊ณต์‹์— ์˜ํ•ด m๊ณผ n-m์— ๋Œ€ํ•ด์„œ๋„ 2์™€ 5์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•จ 2์™€ 5์˜ ๊ณฑ์…ˆ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , Combination ๊ณต์‹์— ์˜ํ•ด n์˜ 2์˜ ๊ฐœ์ˆ˜ ๋ฐ 5์˜ ๊ฐœ์ˆ˜์—์„œ m๊ณผ n-m์˜ 2์˜ ๊ฐœ์ˆ˜ ๋ฐ 5์˜ ๊ฐœ์ˆ˜๋ฅผ ์ œ์™ธ์‹œ์ผœ์คŒ 10์€ 2์™€ 5์˜ ์ง์ด ๋งž์•„์•ผ ํ•˜๋ฏ€๋กœ ์ตœ์ข…์ ์œผ๋กœ ๊ตฌํ•œ 2์™€ 5์˜ ๊ฐœ..