Swift Data Structure And Algorithm 148

division

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ n - 1 ๋ถ€ํ„ฐ ์ •์ˆ˜๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ๋†“์•„๋ด„์œผ๋กœ์จ, ๊ทธ ํ•ฉ์ด n์ด ๋˜๋„๋ก ๊ฒฐ์ •ํ•˜๋Š” ๊ตฌ์กฐ์ด๋ฏ€๋กœ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ†ตํ•œ Back-tracking ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ ํฐ ์ˆ˜๋ถ€ํ„ฐ ๊ฒฐ์ •๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ํฐ ์ˆ˜(n - 1)๋ถ€ํ„ฐ ์ฐจ๋ก€์ฐจ๋ก€ ๋†“์œผ๋ฉด์„œ ํ˜„์žฌ ๋†“์•„์•ผํ•˜๋Š” ์ˆซ์ž๊ฐ€ ์ด์ „ ์ˆซ์ž๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋Š” ์ œ์™ธ์‹œํ‚ด์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ ํ˜„์žฌ ์ˆซ์ž์˜ ํ•ฉ์ด n์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ธฐ์ €์กฐ๊ฑด์ด ๋จ 5. ์ „์ฒด ์ฝ”๋“œ //MARK: - division //MARK: - Framework import Foundation //MARK: - Variable var count: Int = 0 //MARK: - Function func getDivision(_ currentSum: Int, ..

tobin

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์ˆœ์—ด ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์™€ ๋™์ผํ•˜๊ฒŒ Back-tracking ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ์ ์€ ์ฃผ์–ด์ง„ k๊ฐœ ๋งŒํผ์˜ 1์„ ๋‹ค ์†Œ๋ชจํ•ด์•ผ ํ•˜๊ณ , ๊ฐ ์ด์ง„์ˆ˜์— 1์ด k๊ฐœ ๋งŒํผ๋งŒ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ k๊ฐ€ 0์ด๋  ๋•Œ๋งŒ ์ถœ๋ ฅ์„ ํ•ด์ฃผ์–ด์•ผํ•จ 5. ์ „์ฒด ์ฝ”๋“œ //MARK: - tobin //MARK: - Framework import Foundation //MARK: - Variable var n: Int = 0 var k: Int = 0 //MARK: - Function func getBinary(_ current: Int, _ result: inout [Int]) -> Void { if current >= n { if k == 0 { var..

์ˆœ์—ด๊ตฌํ•˜๊ธฐ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ n๊ฐœ์˜ ์†Œ๋ฌธ์ž ์•ŒํŒŒ๋ฒณ ์ค‘ a๋ถ€ํ„ฐ r๊ฐœ๋ฅผ ๋ฝ‘์•„ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•˜๋Š” ์ˆœ์—ด ๋ฌธ์ œ ๋จผ์ € a๋ฅผ ๋†“์•„๋ณด๊ณ , r๊ฐœ ๋งŒํผ ์ค‘๋ณต์„ ๊ฒ€์‚ฌํ•˜๋ฉด์„œ ๋‹ค์Œ ์•ŒํŒŒ๋ฒณ์„ ๋†“๋Š” ์™„์ „ ํƒ์ƒ‰์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Œ ํ•˜์ง€๋งŒ r์ด ๋Š˜์–ด๋‚  ์ˆ˜๋ก ์ค‘์ฒฉํ•ด์•ผํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ ๊ฐœ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜๋ฏ€๋กœ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๊นŒ๋‹ค๋กœ์šธ ์ˆ˜ ์žˆ์Œ ๋”ฐ๋ผ์„œ ์žฌ๊ท€ํ˜ธ์ถœ์„ ์ด์šฉํ•˜์—ฌ Back-tracking ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๋ฐœ์ž์ทจ๋ฅผ ๊ธฐ๋กํ•จ์œผ๋กœ์จ ์žฌ๊ท€์ ์ธ ์™„์ „ ํƒ์ƒ‰์„ ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ //MARK: - ์ˆœ์—ด๊ตฌํ•˜๊ธฐ //MARK: - Framework import Foundation //MARK: - Function func getPermutation(_ current: Int, _ n: Int, _ r: Int,..

mountain

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ๋ฌธ์ œ์—์„œ ์žฌ๊ท€์  ํŒจํ„ด์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ ๋จผ์ € 2์ธ ๊ฒฝ์šฐ, 1 2 1 3์ธ ๊ฒฝ์šฐ, 1 2 1 3 1 2 1 4์ธ ๊ฒฝ์šฐ, 1 2 1 3 1 2 1 4 1 2 1 3 1 2 1 ... ์ฆ‰, ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ์ˆซ์ž์˜ ํŒจํ„ด์„ ์–‘์ชฝ์— ์ €์žฅํ•˜๊ณ  ๊ฐ€์šด๋ฐ์— ์ž์‹ ์„ ์ €์žฅํ•˜๋Š” ํŒจํ„ด ๊ธฐ์ €์กฐ๊ฑด์ธ 1์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // Mountain // // Created by ์ด์˜์žฌ on 2021/09/25. //MARK: - Mountaion(Recursive Function) //MARK: - Function func getMountain(_ number: Int) -> String { if number == 1 { r..

ํŒฉํ† ๋ฆฌ์–ผ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ํŒฉํ† ๋ฆฌ์–ผ์€ ๊ท€๋‚ฉ์  ์ •์˜์— ์˜ํ•ด, f(0) = 1, f(n)! = n * f(n - 1)! ๊ธฐ์ €์กฐ๊ฑด๊ณผ ์‹์„ ์ •ํ™•ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•จ์œผ๋กœ์จ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // Factorial // // Created by ์ด์˜์žฌ on 2022/03/14. //MARK: - ํŒฉํ† ๋ฆฌ์–ผ //MARK: - Framework import Foundation //MARK: - Function func getFactorial(_ N: Int) -> Int { return N == 0 ? 1 : N * getFactorial(N - 1) } func solution() -> Void { //MARK: - Input guard le..

๋ฌธ์ž์—ด ํฌํ•จ๊ด€๊ณ„ ์กฐ์‚ฌ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ๊ธด ๋ฌธ์ž์—ด์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€๋ น, watermelon์ธ ๊ฒฝ์šฐ index๋ฅผ 0~4, 1 ~ 5, 2 ~ 6, 3 ~ 7, 4 ~ 8, 5 ~ 9 ํŒจํ„ด์œผ๋กœ ์ˆœํšŒํ•˜๊ณ , ์งง์€ ๋ฌธ์ž์—ด์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€๋ น, melon์ธ ๊ฒฝ์šฐ ์œ„ index์•ˆ์—์„œ ์ „์ฒด๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ™์€ ๊ฐœ์ˆ˜๊ฐ€ ์งง์€ ๋ฌธ์ž์—ด ๊ธธ์ด์™€ ๊ฐ™๋‹ค๋ฉด, ๊ธด ๋ฌธ์ž์—ด์— ์งง์€ ๋ฌธ์ž์—ด์ด ํฌํ•จ๋จ์„ ์•Œ ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // IncludeString // // Created by ์ด์˜์žฌ on 2022/03/10. //MARK: - ๋ฌธ์ž์—ด ํฌํ•จ๊ด€๊ณ„ ์กฐ์‚ฌ //MARK: - Framework import Foundation //MARK: - Function func solution() -> Voi..

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

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ๋ฌธ์ œ์˜ ํฌ๊ธฐ n์ด 100์ด๋ฏ€๋กœ ์ตœ์•…์˜ ๊ฒฝ์šฐ O(N^2)์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋„ ์‹œ๊ฐ„์•ˆ์— ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จ ๋”ฐ๋ผ์„œ ์„ ํƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ์ •๋ ฌ ์ •๋ ฌ์„ ํ•  ๋•Œ, ๋ฌธ์ž์˜ ๊ธธ์ด๋ณ„๋กœ ์ฒ˜๋ฆฌํ•ด์ค˜์•ผ ํ•˜๋Š” ๋กœ์ง์„ ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฐํ•ด์„œ ์ •๋ ฌ ๋‘ ๋ฌธ์ž์—ด A, B๊ฐ€ ์žˆ์„ ๋•Œ, A์˜ ๊ธธ์ด๊ฐ€ ๋” ์งง๋‹ค๋ฉด A์˜ ๊ธธ์ด๋งŒํผ ๋น„๊ตํ•˜๋ฉด์„œ A๊ฐ€ ํฐ ๊ฒฝ์šฐ๊ฐ€ ๋‚˜์˜ค๋ฉด ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พธ๊ณ  break ๋‹ค๋ฅธ ๊ฒฝ์šฐ A์˜ ๊ธธ์ด๋งŒํผ ๋น„๊ตํ•˜๋ฉด์„œ B๊ฐ€ ํฐ ๊ฒฝ์šฐ๊ฐ€ ๋‚˜์˜ค๋ฉด break ๊ทธ ๋‹ค์Œ A์˜ ๊ธธ์ด๊ฐ€ ๋” ๊ธธ๋‹ค๋ฉด, B์˜ ๊ธธ์ด๋งŒํผ ๋น„๊ตํ•˜๋ฉด์„œ A๊ฐ€ ํฐ ๊ฒฝ์šฐ๊ฐ€ ๋‚˜์˜ค๋ฉด ์ž๋ฆฌ๋ฅผ ๋ฐ”๊พธ๊ณ  break, B๊ฐ€ ํฐ ๊ฒฝ์šฐ๊ฐ€ ๋‚˜์˜ค๋ฉด break, ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ๋‚˜์˜ค๋ฉด flag๊ฐ’์„ true๋กœ ๋ณ€๊ฒฝํ•œ ํ›„ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋‹ค ์ˆœํšŒํ•˜๊ณ  ..

ํฐ ์ž๋ฆฟ์ˆ˜ ๊ณฑ์…ˆ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ Swift์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ Integer ์ž๋ฃŒํ˜•์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋Š” 21์–ต์ด๋ฏ€๋กœ 10^100 ์ˆซ์ž๋ฅผ ๋‹ด์„ ์ˆ˜ ์—†์Œ ๋”ฐ๋ผ์„œ ๋ฐฐ์—ด์— ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋‹ด๊ณ , ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•˜๊ณ  ๋ฌธ์ž์—ด์— ์ €์žฅํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ ๋จผ์ € ๋” ํฐ ์ˆซ์ž๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ธธ์ด๋ฅผ ํ†ตํ•ด ๋” ํฐ ์ˆซ์ž๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Œ. ๊ทธ ํ›„, ๊ฐ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฐ์—ด์— ์ˆซ์ž๋ฅผ ๊ฐ ์ž๋ฆฟ์ˆ˜ ๋งˆ๋‹ค ๋‹ด์Œ ์—ฌ๊ธฐ์„œ ๊ณฑ์…ˆ ๊ฒฐ๊ณผ๋Š” ๋” ํฐ ์ˆซ์ž์˜ ๊ธธ์ด + (์ž‘์€ ์ˆซ์ž์˜ ๊ธธ์ด - 1) ์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๊ณ , ์ž‘์€ ์ˆซ์ž์˜ ๊ฐ ์ž๋ฆฌ์—์„œ ํฐ ์ˆซ์ž๋ฅผ ๊ณฑํ•œ ๊ฐ’์„ ํ•œ ์นธ์”ฉ ์•ž์œผ๋กœ ๋ฐ€๋ ค๋‚˜๊ฐ€๋ฉฐ ๋”ํ•ด์ง€๋Š” ํŒจํ„ด์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Œ ๊ฐ€๋ น, 123 * 12์˜ ๊ฒฝ์šฐ 123 * 2 = 246 + 123 * 1 = 1230 ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ๋ณด๋ฉด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›€..

ํฐ ์ž๋ฆฟ์ˆ˜ ๋บ„์…ˆ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ Swift์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ Integer ์ž๋ฃŒํ˜•์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋Š” 21์–ต์ด๋ฏ€๋กœ 10^100 ์ˆซ์ž๋ฅผ ๋‹ด์„ ์ˆ˜ ์—†์Œ ๋”ฐ๋ผ์„œ ๋ฐฐ์—ด์— ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋‹ด๊ณ , ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•˜๊ณ  ๋ฌธ์ž์—ด์— ์ €์žฅํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ ๋จผ์ € ๋” ํฐ ์ˆซ์ž๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ธธ์ด๋ฅผ ํ†ตํ•ด ํŒŒ์•…ํ•˜๊ณ , ๊ธธ์ด๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๊ฐ ์ž๋ฆฌ์ˆ˜๋ฅผ ๋น„๊ตํ•จ์œผ๋กœ์จ ๋” ํฐ ์ˆซ์ž๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Œ. ๊ทธ ํ›„, ๊ฐ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฐ์—ด์— ์ˆซ์ž๋ฅผ ๊ฐ ์ž๋ฆฟ์ˆ˜ ๋งˆ๋‹ค ๋‹ด์Œ ๋บ„์…ˆ ์—ฐ์‚ฐ์„ ๋บ„์…ˆ ๋ฐฐ์—ด์— ์ €์žฅ ํ›„, ๋‘ ๋ฒˆ์งธ๋กœ ์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž๊ฐ€ ๋” ํฐ ๊ฒฝ์šฐ ์Œ์ˆ˜ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ , ๊ฒฐ๊ณผ๊ฐ€ 0์ธ ๊ฒฝ์šฐ๋ฅผ ๋”ฐ๋กœ ์˜ˆ์™ธ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // BigNumberSubtraction // // Created b..

ํฐ ์ž๋ฆฟ์ˆ˜ ๋ง์…ˆ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ Swift์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ Integer ์ž๋ฃŒํ˜•์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋Š” 21์–ต์ด๋ฏ€๋กœ 10^100 ์ˆซ์ž๋ฅผ ๋‹ด์„ ์ˆ˜ ์—†์Œ ๋”ฐ๋ผ์„œ ๋ฐฐ์—ด์— ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋‹ด๊ณ , ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•˜๊ณ  ๋ฌธ์ž์—ด์— ์ €์žฅํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ ๋จผ์ € ๋” ํฐ ์ˆซ์ž๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๊ธธ์ด๋ฅผ ํ†ตํ•ด ํŒŒ์•…ํ•˜๊ณ , ๊ฐ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฐ์—ด์— ์ˆซ์ž๋ฅผ ๊ฐ ์ž๋ฆฟ์ˆ˜ ๋งˆ๋‹ค ๋‹ด์Œ ๋ง์…ˆ ์—ฐ์‚ฐ์„ ํ•ฉ ๋ฐฐ์—ด์— ์ €์žฅ ํ›„, 10์ด ๋„˜์–ด๊ฐ€๋ฉด ์˜ฌ๋ฆผ์ˆ˜ ์ฒ˜๋ฆฌ๋ฅผ ํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ 5. ์ „์ฒด ์ฝ”๋“œ // // main.swift // BigNumberSummation // // Created by ์ด์˜์žฌ on 2022/03/10. //MARK: - ํฐ ์ž๋ฆฟ์ˆ˜ ๋ง์…ˆ //MARK: - Framework import Foundation //MA..