Swift Data Structure And Algorithm/String Algorithm 10

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

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..

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

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..