[Swift] ๋ฐฑ์ค€ 12933 - ์˜ค๋ฆฌ

2024. 6. 20. 22:09ยทAlgorithm/Swift

๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •

์ฒ˜์Œ์—๋Š” ์•„๋ž˜ ์˜ˆ์‹œ์ฒ˜๋Ÿผ quack / quack์ด๋ผ ๋‘๋งˆ๋ฆฌ์ธ์ค„ ์•Œ์•˜๋Š”๋ฐ ์•Œ๊ณ ๋ณด๋‹ˆ ์—ฐ์†๋œ quack์€ ํ•œ๋งˆ๋ฆฌ์˜€๋˜๊ฑฐ์ž„!!
๊ทธ๋ฆฌ๊ณ  ์šธ์Œ์†Œ๋ฆฌ๋ฅผ ์ „๋ถ€ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ถ€๋ถ„์ด ์ข€ ํ—ท๊ฐˆ๋ ธ๋‹ค.

๊ทธ๋ž˜์„œ ์ •์ƒ์ ์ธ ์šธ์Œ์†Œ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ
- q๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜
- k๋กœ ๋๋‚˜์ง€ ์•Š๊ฑฐ๋‚˜
- ์šธ์Œ์†Œ๋ฆฌ ์ „์ฒด๊ฐ€ 5๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฉด -1์„ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.
duckSound[0] != "q" || duckSound[soundCnt-1] != "k" || soundCnt % 5 != 0

 

๋˜ํ•œ ์šธ์Œ ์†Œ๋ฆฌ์˜ ์ˆ˜๋Š” ๋งž์ง€๋งŒ ์œ— ์˜ˆ์‹œ์ฒ˜๋Ÿผ ์ด์ƒํ•œ ์šธ์Œ์†Œ๋ฆฌ๋ฅผ ๊ฑฐ๋ฅด๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ์กฐ๊ฑด ์ถ”๊ฐ€ํ–ˆ๋‹ค.

if duckSound[i] == "q" && visited[i] == 0 {
      getDuckCnt(i)
}

getDuckCnt

func getDuckCnt(_ start: Int) {
    var idx = 0 //quack์šฉ index
    var isNewDuck = true //์ƒˆ๋กœ์šด ์˜ค๋ฆฌ์ธ์ง€ ์•„๋‹Œ์ง€
    for i in start..<soundCnt {
        if duckSound[i] == quack[idx] && visited[i] == 0 {
            idx += 1
            visited[i] = 1
            if duckSound[i] == "k" {
                idx = 0
                if isNewDuck {
                    duckCnt += 1
                    isNewDuck = false
                }
            }
        }
    }
}

์—ฌ๊ธฐ์„œ๋Š” quack ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ , quack ์ „์šฉ idx๋ฅผ ๋งŒ๋“ค์–ด์„œ ์šธ์Œ์†Œ๋ฆฌ์™€ quack์„ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๊ณ  ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ
์ƒˆ๋กœ์šด ์˜ค๋ฆฌ์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•ด์ฃผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€
๋งŒ์•ฝ์— ์ƒˆ๋กœ์šด ์˜ค๋ฆฌ๋ผ๋ฉด duckCnt += 1ํ•ด์ฃผ๊ณ  
isNewDuck = false ๋ฐ”๊ฟ”์ฃผ๋ฉด์„œ 
k ๋‹ค์Œ q๊ฐ€ ์˜ค๋Š” ํ•œ๋งˆ๋ฆฌ์˜ ์˜ค๋ฆฌ๊ฐ€ ์šฐ๋Š” ์ƒํ™ฉ์„ ๋Œ€๋น„ 

 

if duckCnt == 0 || visited.contains(0) {
        print(-1)
    } else {
        print(duckCnt)
    }

์˜ค๋ฆฌ์˜ ์ˆ˜๊ฐ€ 0์ด๊ฑฐ๋‚˜ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์šธ์Œ์†Œ๋ฆฌ๊ฐ€ ์žˆ๋‹ค๋ฉด
์ด ๋˜ํ•œ ์ •์ƒ์ ์ธ ์šธ์Œ์†Œ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— -1

 

๋‚˜์˜ ํ’€์ด

func getDuckCnt(_ start: Int) {
    var idx = 0 //quack์šฉ index
    var isNewDuck = true //์ƒˆ๋กœ์šด ์˜ค๋ฆฌ์ธ์ง€ ์•„๋‹Œ์ง€
    for i in start..<soundCnt {
        if duckSound[i] == quack[idx] && visited[i] == 0 {
            idx += 1
            visited[i] = 1
            if duckSound[i] == "k" {
                idx = 0
                if isNewDuck {
                    duckCnt += 1
                    isNewDuck = false
                }
            }
        }
    }
}

let duckSound = readLine()!.map { String($0) }
let soundCnt = duckSound.count
var visited = Array(repeating: 0, count: soundCnt)
let quack = ["q", "u", "a", "c", "k"]
var duckCnt = 0 // ์ถœ๋ ฅํ•ด์•ผ ํ•  ์˜ค๋ฆฌ ์ˆ˜

if duckSound[0] != "q" || duckSound[soundCnt-1] != "k" || soundCnt % 5 != 0 {
    print(-1)
} else {
    for i in 0..<soundCnt {
        if duckSound[i] == "q" && visited[i] == 0 {
            getDuckCnt(i)
        }
    }
    if duckCnt == 0 || visited.contains(0) {
        print(-1)
    } else {
        print(duckCnt)
    }
}

 

'Algorithm > Swift' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Swift] ๊ตฌ๋ฆ„ - 1์ฐจ์› ๋ฟŒ์š”๋ฟŒ์š”  (0) 2024.07.03
[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํŠน์ • ๋ฌธ์ž์—ด๋กœ ๋๋‚˜๋Š” ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์ฐพ๊ธฐ  (0) 2024.06.19
'Algorithm/Swift' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Swift] ๊ตฌ๋ฆ„ - 1์ฐจ์› ๋ฟŒ์š”๋ฟŒ์š”
  • [Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํŠน์ • ๋ฌธ์ž์—ด๋กœ ๋๋‚˜๋Š” ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์ฐพ๊ธฐ
๐ŸฅญMango
๐ŸฅญMango
  • ๐ŸฅญMango
    AppleMango๐Ÿฅญ
    ๐ŸฅญMango
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • iOS
        • Swift
        • SwiftUI
        • RxSwift
      • Algorithm
        • C
        • Python
        • Swift
      • Computer Science
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ
        • OS
      • ...
      • ๊ฐœ๋ฐœ ํƒ€์ž„์บก์А
        • Python
        • Flutter
        • Android
        • Kotlin
        • Java
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    swiftUI tabview
    IOS
    6118
    ์ฝ”ํ‹€๋ฆฐ ์ƒ์†
    ๋ฐฑ์ค€ ํ† ๋งˆํ† 
    1613 ์—ญ์‚ฌ
    ํŒŒ์ด์ฌ
    1์ฐจ์› ๋ฟŒ์š”๋ฟŒ์š”
    Code Base
    Swift Hello World!
    Apple Login
    14503 ํŒŒ์ด์ฌ
    ์—ญ์‚ฌ ํŒŒ์ด์ฌ
    SwiftUI
    swiftUI Gradients
    Custom Map Marker
    ํŒŒ์ด์ฌ 6118
    MapMarker
    ํŒŒ์ด์ฌ ํ† ๋งˆํ† 
    1613 ํŒŒ์ด์ฌ
    ํŒŒ์ด์ฌ ์ •๋ ฌ
    SwiftUI Apple Login
    ํŒŒ์ด์ฌ 1459
    ํŒŒ์ด์ฌ 14503
    ํ† ๋งˆํ† 
    typing animation
    ์ฝ”ํ‹€๋ฆฐ
    ๋ฐฑ์ค€ ์†Œ์ˆ˜
    ์Šคํƒ
    14503 ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.2
๐ŸฅญMango
[Swift] ๋ฐฑ์ค€ 12933 - ์˜ค๋ฆฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”