Swift Data Structure And Algorithm/Stack 5

ํƒ‘

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜์—ด์„ ๊ฑฐ๊พธ๋กœ ์ˆœํšŒํ•˜๋ฉด์„œ ํ˜„์žฌ ์Šคํƒ์— ์žˆ๋Š” index์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜์—ด์˜ ์›์†Œ๋ณด๋‹ค ํ˜„์žฌ ๋ฐฐ์—ด์˜ ์›์†Œ๊ฐ€ ๋” ํฌ๋‹ค๋ฉด ์Šคํƒ์—๋Š” index๋ฅผ ์ €์žฅํ•˜๊ณ , ๋” ํฐ index์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋ฅผ ๋งŒ๋‚˜๊ธฐ ์ „๊นŒ์ง€ pop์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ ์ž์‹ ์˜ ๋ ˆ์ด์ € ์‹ ํ˜ธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” index๋ฅผ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์— ์ €์žฅ ์œ„ ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ(ํ˜„์žฌ ์Šคํƒ์— ์กด์žฌํ•˜๋Š” index์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜์—ด์˜ ์›์†Œ๋ณด๋‹ค ํ˜„์žฌ ์›์†Œ๊ฐ€ ์ž‘์€ ๊ฒฝ์šฐ)๋Š” ์Šคํƒ์— index๋ฅผ pushํ•จ์œผ๋กœ์จ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ //MARK: - ํƒ‘ //MARK: - Framework import Foundation //MARK: - Function func solution() -> Void { //MA..

๊ด„ํ˜ธ์˜๊ฐ’

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์ž…๋ ฅ ๋ฐ›์€ ๊ด„ํ˜ธ์—ด์ด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์—ด์ธ์ง€ ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ ํ•œ ํ›„, ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์—ด์ธ ๊ฒฝ์šฐ 0 ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์—ด์ธ ๊ฒฝ์šฐ "("์ธ ๊ฒฝ์šฐ์—๋Š” ํŽธ์˜์ƒ -1์„ ์Šคํƒ์— pushํ•˜๊ณ , "["์ธ ๊ฒฝ์šฐ -2๋ฅผ ์Šคํƒ์— push ํ˜„์žฌ ์›์†Œ๊ฐ€ ")"์ธ ๊ฒฝ์šฐ, "(" ์ฆ‰, -1์„ ๋งŒ๋‚  ๋•Œ ๊นŒ์ง€ stack์˜ ์›์†Œ๋ฅผ pop ํ•˜์—ฌ ๋ณ€์ˆ˜์— ์ €์žฅ "["์ธ ๊ฒฝ์šฐ์—๋Š” -2๋ฅผ ๋งŒ๋‚  ๋•Œ ๊นŒ์ง€ stack์˜ ์›์†Œ๋ฅผ popํ•˜์—ฌ ์ €์žฅํ•˜๊ณ , ๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ์— ์ €์žฅ๋œ ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ๋Š” ๋‹จ์ˆœ ๊ด„ํ˜ธ์—ด ํ•œ ์Œ์ด๋ฏ€๋กœ ()์€ 2๋ฅผ ์ €์žฅ, []๋Š” 3์„ ์ €์žฅํ•˜๊ณ , 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ๊ด„ํ˜ธ์—ด์ด ์ค‘์ฒฉ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋กœ, ํ˜„์žฌ ๊นŒ์ง€์˜ ๋ˆ„์ ๋œ ๊ฐ’์— "(" ์ด๋ฉด, * 2 ํ•˜์—ฌ ์Šคํƒ์— ์ €์žฅ, "[" ์ด๋ฉด * 3 ํ•˜์—ฌ ์Šคํƒ์— ์ €์žฅ ..

๊ด„ํ˜ธ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ์—ด๋ฆฐ ๊ด„ํ˜ธ์˜ ๊ฒฝ์šฐ count๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ(stack push ์—ฐ์‚ฐ)์ฃผ๊ณ , ๋‹ซํžŒ ๊ด„ํ˜ธ์˜ ๊ฒฝ์šฐ count ๊ฐ’์„ ๊ฐ์†Œ์‹œ์ผœ(stack pop ์—ฐ์‚ฐ) count ๊ฐ’์ด ์Œ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ ์˜ฌ๋ฐ”๋ฅด์ง€ ๋ชปํ•œ ๊ด„ํ˜ธ์—ด์ด ๋˜๊ณ , ๊ด„ํ˜ธ์—ด์„ ๋ชจ๋‘ ์ˆœํšŒํ•˜๊ณ  ๋‚˜์„œ count๊ฐ’์ด 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋„ ์˜ฌ๋ฐ”๋ฅด์ง€ ๋ชปํ•œ ๊ด„ํ˜ธ์—ด์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Œ 5. ์ „์ฒด ์ฝ”๋“œ //MARK: - ๊ด„ํ˜ธ //MARK: - Framework import Foundation //MARK: - Function func solution() -> Void { //MARK: - Input guard let str: String = readLine() else { return } var flag: Bool = false v..

์ ‘์‹œ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ๋ฌธ์ œ ์„ค๊ณ„ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 50์ด๊ณ  ์•ŒํŒŒ๋ฒณ์˜ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 26์ด๋ฏ€๋กœ ์™„์ „ํƒ์ƒ‰์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ๊ธฐ์ค€์œผ๋กœ ์•ŒํŒŒ๋ฒณ 26๊ฐœ๋ฅผ ๋น„๊ตํ•˜์—ฌ ํ˜„์žฌ ๋ฌธ์ž์—ด์˜ ์•ŒํŒŒ๋ฒณ ๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋Š” ์Šคํƒ์— push ์ด๋•Œ, ํ•œ ๋ฒˆ stack์— ๋“ค์–ด๊ฐ„ ์›์†Œ๋Š” ๋‹ค์‹œ ๋“ค์–ด๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด Bool ๋ฐฐ์—ด๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ ์ž์‹ ๋ณด๋‹ค ์ž‘์€ ์•ŒํŒŒ๋ฒณ์„ ๋ชจ๋‘ stack์— ๋„ฃ์€ ํ›„ ์ž์‹ ๋ณด๋‹ค ํฐ ์›์†Œ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด ๋ฐ˜๋ณต์„ ๋ฉˆ์ถ”๊ณ , ์Šคํƒ์— ๋ชจ๋“  ์›์†Œ๋ฅผ pop ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๊ตฌ์„ฑํ•จ ์œ„ ๊ณผ์ •์—์„œ push์™€ pop์—ฐ์‚ฐ์„ ๋ฌธ์ž์—ด ๋ณ€์ˆ˜์— ์ „๋ถ€ ๊ธฐ๋ก ๋ฌธ์ž์—ด์„ ๋‹ค ์ˆœํšŒํ•˜๊ณ  ๋‚œ ํ›„, ์ƒˆ๋กญ๊ฒŒ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด๊ณผ ๊ธฐ์กด ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜์—ฌ ๋‹ค๋ฅผ ๊ฒฝ์šฐ impossible์„ ๋ฌธ์ž์—ด์— ์ €..

์Šคํƒ ๊ตฌํ˜„ํ•˜๊ธฐ

1. ๋ฌธ์ œ 2. ์ž…์ถœ๋ ฅ 3. ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ 4. ์ „์ฒด ์ฝ”๋“œ //MARK: - ์Šคํƒ ๊ตฌํ˜„ํ•˜๊ธฐ //MARK: - Framework import Foundation //MARK: - Type struct Stack { //MARK: - Property var array: [Int] var len: Int var capacity: Int //MARK: - Initializer init(_ capacity: Int) { self.capacity = capacity self.array = Array(repeating: 0, count: capacity) self.len = 0 } //MARK: - Method mutating func push(_ data: Int) -> Void { if len >= capacity..