[Kotlin]서울에서 김서방 찾기

KSang·2023년 11월 29일
0

[Kotlin]코드카타

목록 보기
23/100

문제설명

String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

제한사항

seoul은 길이 1 이상, 1000 이하인 배열입니다.
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
"Kim"은 반드시 seoul 안에 포함되어 있습니다.

입출력 예

진행

Jane , Kim 등등 여러 사람의 이름으로 이루어진 서울의 배열에서 Kim의 위치를 찾는 것 같다

불특정 다수의 배열속에서 Kim의 위치를 찾아보려면

일단 배열을 설정해야한다

1~ 1000까지 랜덤한 사이즈의 배열을 생성하고

거기서 indexOf 함수를 이용해 찾으면 될것이다

Kim은 반드시 포함되게하고 그 외의 사람이름은 DB가 있어야 할것 같다 이부분은 생략하자

fun makeseoul(): Array<String>{
    val size = Random.nextInt(1,1001) // 1~1000까지 중 랜덤한 숫자 생성
    val kimplace = Random.nextInt(size) // 0~size까지 중 랜덤한 숫자 생성
}

size는 서울 전체의 크기를 나타내고 kimplace는 size보다 작은 위치에 kim의 위치를 나타낸다

이제 Kim이 들어갈 seoul을 만들어보자

 val seoul = Array(size){
        if (it == kimplace) "Kim"
        else "Jane"
    }

배열을 만들고 조건문을 통해 Kimplace에 Kim을 넣고 나머진 Jane으로 채웠다

서울을 만들었으니 솔루션함수를 작성해보자

사실 별거없다 indexof를 사용하면 간단하다

fun solution():Int {
    var answer = 0

    answer = makeseoul().indexOf("Kim")
    return answer
}

코드

package com.example.codekata

import kotlin.random.Random

fun main() {
    println("Kim은 ${solution()}에 위치하고 있습니다")
}

fun solution():Int {
    var answer = 0

    answer = makeseoul().indexOf("Kim")
    return answer
}

fun makeseoul(): Array<String>{
    val size = Random.nextInt(1,1001) // 1~1000까지 중 랜덤한 숫자 생성
    val kimplace = Random.nextInt(size) // 0~size까지 중 랜덤한 숫자 생성

    val seoul = Array(size){
        if (it == kimplace) "Kim"
        else "Jane"
    }

    return seoul
}

결과

0개의 댓글