본문 바로가기

Develop/Coding Test

코딩테스트 입문 (feat. Day 19 문자열, 배열, 조건문)

19일차 스탬프

 

1.  7의 개수

Q. 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.

func solution(_ array:[Int]) -> Int {
    var result: Int = 0
    var temp = array.map { String($0) }
    temp.forEach {
        $0.forEach { val in
            result += val == "7" ? 1 : 0
        }
    }
    return result
}

 

A. 전달 받은 정수 배열 array를 문자열 배열로 변환한 후 순회하면서

각각의 문자열을 또 다시 순회하여 한 글자씩 "7"인지를 비교한 후, 총 개수를 저장하는 result를 반환하여 해결했다.

2. 잘라서 배열로 저장하기

Q. 문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

func solution(_ my_str:String, _ n:Int) -> [String] {
    var value = ""
    var index = 1
    var result: [String] = []
    my_str.forEach {
        value.append($0)
        if index == n {
            result.append(value)
            value = ""
            index = 0
        }
        index += 1
    }
    if !value.isEmpty {
        result.append(value)
    }
    return result
}

 

A. 전달 받은 my_str을 forEach문 내에서 index와 n이 같을 때까지 배열에 저장할 문자열 value를 구한 후,

index와 n이 같은 경우 value를 result 배열에 추가하고 value를 초기화하는 것을 반복했다.

그리고 my_str의 길이가 n으로 나누어 떨어지지 않을 때는 value의 값이 남아 있기 때문에

마지막에 그 값을 추가한 후 result를 반환하여 해결했다.

3. 중복된 숫자 개수

Q. 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

func solution(_ array:[Int], _ n:Int) -> Int {
    return array.filter { $0 == n }.count
}

 

A. 전달 받은 array를 고차함수 filter를 통해 n과 같은 값들만 저장한 배열을 구한 후 해당 배열의 길이를 반환하여 해결했다.

4. 머쓱이보다 키 큰 사람

Q. 머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

func solution(_ array:[Int], _ height:Int) -> Int {
    return array.filter { $0 > height }.count
}

 

A. 전달 받은 array를 고차함수 filter를 통해 height보다 큰 값들만 저장한 배열을 구한 후 해당 배열의 길이를 반환하여 해결했다.


오늘 문제는 비슷한 것도 많고 난이도가 그다지 어렵지 않아서 수월하게 해결할 수 있었다.

 

이제 앞으로 6일차가 남았다..

연말의 많은 일정들을 소화하면서 풀이를 소홀히 한 나..

벌써 2024년이 4일밖에 남지 않았고, 올해 안으로는 무조건 끝내는 게 목표이기 때문에

지금까지는 하루에 하나씩만 풀고 글을 작성하였지만, 남은 4일동안 연속으로 글을 올리고자 한다!