[Swift/프로그래머스] 문자열 곱하기

sonny·2024년 11월 9일
3

TIL

목록 보기
36/48
post-thumbnail

나의 답)

import Foundation

func solution(_ my_string:String, _ k:Int) -> String {
    return String(repeating: my_string , count: k)

}

.
.
.

답을 찾기까지 과정

문자열을 곱하라니 무슨 말이지....

한국어 번역 된 swift 공식문서 문자열 부분을 아무리 뒤져도 못찾아서 결국 검색을 해버렸다.

문자열 곱하기라고 치면 답 나올까봐 '문자열 반복하는 방법' 이런식으로 검색했다가 발견..!

[Swift] init(repeating:count:)
(내가 문자열 반복하는 방법 검색하다 발견한 블로그...!! 감사합니다ㅜ)

거기서 방법을 발견했다.

공식문서 내용

영문 공식문서에만 있어서 못 찾았구나..

이니셜라이저 인 줄 꿈에도 몰랐다.

사용방법을 보고 바로 실습 고고!!!!!

잘 웃어주고 있다.

그렇게 프로그래머스 문제를 해결할 수 있었다.


또니셜라이저

Array(repeating:count:)

let repeatedArray = Array(repeating: "Hello", count: 5)

print(repeatedArray) // ["Hello", "Hello", "Hello", "Hello", "Hello"]

블로그 글들을 뒤져보다 어느 블로그에서 Array(repeating:count:) 라고 설명하는 걸 보았다.

Array도 가능하구나 하며 넘겼는데,

생각해보니 공식문서는 저렇게 안 써있었다.

머지?

init(repeating:count:)

알아보니 공식 문서에서 init(repeating:count:) 로 표기하는 이유는

Swift의 이니셜라이저가 사실상 init 메서드이기 때문이라서,

문서에서는 이 이니셜라이저가 이미 Array의 일부임을 전제로 하고 있기 때문에

메서드 이름을 init(repeating:count:) 로만 적어도 이해할 수 있게 설명했다고 한다.

하긴.. 근데 난 저 내용이 collection 에 있었어도 계속 String 쪽에서 찾아봤을 것 같다..^

아무튼 그래도 코드에서 실제로 사용할 땐 !

Array(repeating:count:) 처럼 타입 이름과 함께 이니셜라이저를 호출해야 한다.

이유는 이니셜라이저를 타입 내부의 특별한 함수로 다루기 때문인데,

Array 외에도 String, Dictionary 등 여러 타입에서 이와 같은 방식으로 이니셜라이저를 정의한다고 한다.


음 ....

이니셜라이저를 정말 많이 이해해야 한다고 생각하는 요즘이다.

강의를 해주시는 튜터님들도 이니셜라이저의 중요성을 강조하시는 걸 몇 번 들었는데,

애플도 이니셜라이저를 특별한 함수로 취급하고 있으니..

이쁨받는 친구는 친하게 지내야하는 법, 뭐 그런거 아닐까.

그래도 오늘 String(repeating:count:) 라는 아주 간단하고 직관적인 방법으로

문자열을 여러 번 반복할 수 있게 해준다는 걸 알았으니 아주 만족스럽다고 할 수 있다.

profile
iOS 좋아. swift 좋아.

4개의 댓글

comment-user-thumbnail
2024년 11월 9일

오 주말에도 열공하시는군요
저라면 for문에 + 넣고 떠났을텐데
덕분에 새로운 문법 하나 알아가네여

1개의 답글
comment-user-thumbnail
2024년 11월 10일

오 저도 저건 생각 못했을듯 역시 우리가 모르는게 정말 많구나

1개의 답글