๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
3๏ธโƒฃ Swift/Problem Solving

[Swift Algorithm] ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ Programmers(Lv.1)

by seolhee2750 2021. 6. 17.
๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ž์—ด s์˜ ๊ธธ์ด๊ฐ€ 4 ํ˜น์€ 6์ด๊ณ , ์ˆซ์ž๋กœ๋งŒ ๊ตฌ์„ฑ๋ผ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์ฃผ๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด s๊ฐ€ "a234"์ด๋ฉด False๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  "1234"๋ผ๋ฉด True๋ฅผ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์ œํ•œ ์กฐ๊ฑด
  • s๋Š” ๊ธธ์ด 1 ์ด์ƒ, ๊ธธ์ด 8 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ
s return
"a234" false
"1234" true

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
func solution(_ s:String) -> Bool {
    if s.count == 4 || s.count == 6 {
        if Int(s) == nil {
            return false
        }
        else {
            return true
        }
    }
    
    else {
        return false
    }
}
  • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 4๋˜๋Š” 6์ผ ๋•Œ์™€ ์•„๋‹๋•Œ๋กœ ๋จผ์ € ๋‚˜๋ˆ„์–ด ์ฃผ์—ˆ์Œ.
  • ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด s๋ฅผ Int๋กœ ํ˜•๋ณ€ํ™˜ ํ–ˆ์„ ๋•Œ nil ๊ฐ’์ด ๋‚˜์˜จ๋‹ค๋ฉด ๊ทธ๊ฑด ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๋œป,,! ์ด๊ธฐ ๋•Œ๋ฌธ์—
    ๊ทธ๋•Œ ๋ฐ”๋กœ false๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ๋„๋ก ํ–ˆ๋‹ค. ์•„๋‹ ๋• true!

 

์ธ์ƒ์ ์ธ ํ’€์ด
func solution(_ s:String) -> Bool {
    return (Int(s) != nil && (s.count == 4 || s.count == 6)) ? true : false
}
  •   ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ํ•œ ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๊ฒŒ s๋ฅผ Int๋กœ ํ˜•๋ณ€ํ™˜ ํ–ˆ์„ ๋•Œ nil์ด ๋‚˜์˜ค๋Š”์ง€ ํŒ๋‹จํ•ด์ฃผ์—ˆ๊ณ , ๋ฐ”๋กœ && ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊นŒ์ง€ ์ฒดํฌํ•ด์ฃผ์—ˆ๋‹ค. 

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • ์˜ˆ์™ธ์ฒ˜๋ฆฌํ•ด ์ค„ ๋‚ด์šฉ์ด ๋งŽ์ง€ ์•Š๊ณ , ๋ฐ˜๋ณต์ ์ด์ง€ ์•Š์„ ๋•Œ๋Š” ๊ฐ„๋‹จํžˆ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์จ์ค„ ์ค„ ์•Œ์•„์•ผ ํ•  ๋“ฏ ํ•˜๋‹ค,,!

 


 

๐Ÿ– [ ์ถ”๊ฐ€ ] 1์ฃผ์ผ ํ›„ ๋‹ค์‹œ ํ’€์–ด๋ณด๊ธฐ

func solution(_ s:String) -> Bool {
    var result = true
    
    if s.count == 4 || s.count == 6 {
        for i in s {
            if Array("1234567890").contains(i) { result = true }
            else {
                result = false
                break
            }
        }
        return result
    }
    
    else { return false }
  • if ๋ฌธ์—์„œ ๋ฐ”๋กœ ์ˆซ์ž๋“ค์„ ๋‹ด์€ ๋ฐฐ์—ด์„ ์ƒ์„ฑ, ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์— ์ˆซ์ž ๋ฐฐ์—ด์— ํฌํ•จ๋˜๋Š” ๋ฌธ์ž๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์—ˆ๋‹ค.
  • ์ˆซ์ž ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•ด์„œ ์ฒดํฌํ•ด์ค€ ๊ฒƒ์„ ์ œ์™ธํ•˜๋ฉด ์ €๋ฒˆ ์ฃผ์— ํ’€์—ˆ๋˜ ํ’€์ด์™€ ๋น„์Šทํ•œ๋ฐ, ๊ตณ์ด ์ˆซ์ž ๋ฐฐ์—ด์„ ์ƒ์„ฑ ํ•ด ์ค€ ๊ฒƒ์€ ์ข‹์ง€ ๋ชปํ•œ ์„ ํƒ ๊ฐ™๋‹ค.ใ…œ 
  • ๋ฌธ์ž์—ด์— ์ˆซ์ž๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ๋Š” Int๋กœ ํ˜•๋ณ€ํ™˜ ํ›„ nil ๊ฐ’์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ž!

 


 

โž•๐Ÿ– [ ๋˜! ์ถ”๊ฐ€ ] 1์ฃผ์ผ ํ›„ ๋˜ ๋‹ค์‹œ ํ’€์–ด๋ณด๊ธฐ

func solution(_ s:String) -> Bool {
    return (s.count == 4 || s.count == 6) && (Int(s) != nil)
}
  • ์™„์ „ ๊น”๋”ํ•˜๊ฒŒ ๋ณ€ํ–ˆ๋‹ค,!!!
  • ์ด๋ ‡๊ฒŒ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋‹ˆ,, ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ๋‹คใ…œ

 


 

๋ฌธ์ œ

https://programmers.co.kr/learn/courses/30/lessons/12918

๋Œ“๊ธ€