CodingTest/Baekjoon

[baekjoon] 백준 12933번(코틀린): 오리

JunJangE 2022. 8. 27. 11:39

문제

 

12933번: 오리

첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5보다 크거나 같고, 2500보다 작거나 같은 자연수이고, 'q','u','a','c','k'로만 이루어져 있다.

www.acmicpc.net

알고리즘

- 반복문을 통해 오리의 울음소리를 확인한다.

- 확인은 그 울음의 탐색 유무에 따라 진행한다.

- 울음소리가 quack이고 탐색하지 않았다면 카운트한다.

코드

package beakjoon.implementation

import java.io.BufferedReader
import java.io.InputStreamReader



fun main(){
    val br = BufferedReader(InputStreamReader(System.`in`))
    val duck = br.readLine()!!.toList()
    val size = duck.size
    val visited = Array(duck.size){false}
    val quack = "quack".toList()
    var cnt = 0

    if (size % 5 != 0){
        println(-1)

    }else{
        for (i in 0 until size){
            if (duck[i] == 'q' && !visited[i]){
                var k = 0
                var check = true
                for (j in i until size){
                    if (duck[j] == quack[k] && !visited[j]){
                        visited[j] = true
                        if (duck[j] == 'k'){
                            if (check){
                                check = false
                                cnt++
                            }

                            k = 0
                            continue
                        }
                        k++

                    }
                }
            }

        }

        if (!visited.all { it } || cnt == 0){
            println(-1)
        }else{
            println(cnt)
        }


    }

}

github

 

GitHub - junjange/KotlinAlgorithm: 내가 푼 코딩 테스트 문제와 해결법(Kotlin)

내가 푼 코딩 테스트 문제와 해결법(Kotlin). Contribute to junjange/KotlinAlgorithm development by creating an account on GitHub.

github.com