본문 바로가기

Develop/Coding Test

코딩 테스트 입문 (feat. Day 6 문자열, 반복문, 출력, 배열, 조건문)

6일차 스탬프

1.  문자열 뒤집기

Q. 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.

func solution(_ my_string:String) -> String {
    var result = ""
    my_string.reversed().map {
        result.append($0)
    }
    return result
}

 

A. 전달 받은 문자열을 reversed()로 뒤집은 후 고차함수 map으로 순회하며 result 문자열에 각 원소를 추가한 result를 반환하여 해결했다.

2. 직각삼각형 출력하기

Q. "*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.

let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! }

for i in 1...n.first! {
    print(String(repeating: "*", count: i))
}

 

A. for문을 통해 1부터 입력 받은 정수 n까지 반복하면서 String(repeating:count:)를 활용해

문제에서 요구하는 삼각형을 출력하여 해결했다.

 

feat.

String(repeating:count)는 문자열을 생성하는 방법 중 하나로,

주어진 문자를 지정된 횟수만큼 반복하여 나타내는 문자열을 생성한다.

3. 짝수 홀수 개수

Q. 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

func solution(_ num_list:[Int]) -> [Int] {
    let even = num_list.filter { $0 % 2 == 0 }
    let odd = num_list.filter { $0 % 2 == 1 }
    return [even.count, odd.count]
}

 

A. 고차함수 filter 활용하여 전달 받은 num_list에서 짝수와 홀수를 담은 배열을 각각의 변수에 저장했다.

그리고 각각의 변수에 저장된 배열의 길이를 배열로 담아 반환하여 해결했다.

 

feat.

위 코드의 변수명은 다음과 같다.

- even (짝수)

- odd (홀수)

4. 문자 반복 출력하기

Q. 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.

func solution(_ my_string:String, _ n:Int) -> String {
    return my_string.map { String(repeating: $0, count: n) }.joined(separator: "")
}

 

A. 고차함수 map을 활용하여 전달 받은 my_string를 순회하면서

String(repeating:count:)로 각 문자를 n만큼 반복하여 배열로 저장했다.

그리고 그 값을 joined(separator:)를 통해 배열의 원소들을 합친 값을 String 변환했고,

그 값을 반환하여 해결했다. 

 

feat.

joined(separator:) 메서드는 전달한 구분 기호를 각 요소 사이에 삽입하여 시퀀스의 연결된 요소를 반환한다.

이를 활용하면, 배열의 원소들을 하나의 문자열로 손쉽게 변환할 수 있다.


오늘은 문제를 해결하면서 평소에는 잘 쓰지 않았던

Swift의 메서드들을 조금 알아보았다.

다양한 메서드가 있는 만큼 적절한 상황에 적절한 메서드를 사용하면

코드를 훨씬 효율적으로 작성할 수 있을 것 같다.

내일도 화이팅!