๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Problem Solution/Programmers

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ Swift

by Fomagran ๐Ÿ’ป 2020. 8. 10.
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ ์„ค๋ช…

๊ด„ํ˜ธ๊ฐ€ ๋ฐ”๋ฅด๊ฒŒ ์ง์ง€์–ด์กŒ๋‹ค๋Š” ๊ฒƒ์€ '(' ๋ฌธ์ž๋กœ ์—ด๋ ธ์œผ๋ฉด ๋ฐ˜๋“œ์‹œ ์ง์ง€์–ด์„œ ')' ๋ฌธ์ž๋กœ ๋‹ซํ˜€์•ผ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด

  • ()() ๋˜๋Š” (())() ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.
  • )()( ๋˜๋Š” (()( ๋Š” ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ž…๋‹ˆ๋‹ค.

'(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฌธ์ž์—ด s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ด๋ฉด true๋ฅผ return ํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ด„ํ˜ธ์ด๋ฉด false๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 100,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด s๋Š” '(' ๋˜๋Š” ')' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

s answer
()() true
(())() true
)()( false
(()( false

ํ’€์ด: ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ "(" ๋ณด๋‹ค ")"์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๋” ๋งŽ์•„์ง€๋Š” ์ˆœ๊ฐ„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ๊ฐ€ ๋  ์ˆ˜ ์—†๋‹ค.

1. "(" ๊ณผ ")"์ด ์ˆซ์ž๋ฅผ ์…€ count ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. -> var count = 0

2.for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ s์˜ ๊ธ€์ž ์ค‘์— "("๋ผ๋ฉด count๋ฅผ 1์ฆ๊ฐ€์‹œ์ผœ์ฃผ๊ณ  ")"๋ผ๋ฉด 1๊ฐ์†Œ์‹œ์ผœ์ค€๋‹ค. (s๋Š” "("๊ณผ ")"๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์œผ๋ฏ€๋กœ "("์•„๋‹ˆ๋ผ๋ฉด ์ฆ‰ else๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.) ->  for a in s { if a == "(" { count += 1} else{ count -= 1

3.count๊ฐ€ 0๋ณด๋‹ค ์ž‘์•„์กŒ๋‹ค๋Š” ๊ฒƒ์€ ")"์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๋” ๋งŽ์•„์กŒ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ for๋ฌธ์„ ์ค‘๋‹จ์‹œํ‚จ๋‹ค.(break) ->   if count < 0 { break }

4.count๊ฐ€ 0์ด๋ผ๋ฉด true๋ฅผ ์•„๋‹ˆ๋ผ๋ฉด false๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ํ•œ๋‹ค.(count๊ฐ€ ์Œ์ˆ˜๋ผ๋ฉด์ด๋ผ๊ณ  ํ•˜์ง€์•Š์€ ์ด์œ ๋Š” "(((("์ด๋Ÿฐ์‹์œผ๋กœ ๋œ๋‹ค๋ฉด count๊ฐ€ 0๋ณด๋‹ค ์ปค์ง€๊ณ  ์˜ณ์ง€ ์•Š์€ ๊ด„ํ˜ธ๊ธฐ ๋•Œ๋ฌธ์— 0์ด๋ผ๊ณ  ๋†“์•˜๋‹ค.) -> return count == 0 ? true : false

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import Foundation
 
func solution(_ s:String-> Bool
{
    var count = 0
    for a in s {
        if a == "("{
            count += 1
        }else{
            count -= 1
        }
        if count < 0 {
            break
        }
    }
    return count == 0 ? true : false
}

 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€