상세 컨텐츠

본문 제목

백준 15651: N과 M (3) (Swift)

카테고리 없음

by 앱등개발자IOS 2022. 5. 24. 17:55

본문

순열과 조합 시리즈 3탄!

중복 순열로, 사실상 n개의 자연수를 m개의 자리에 한 번씩 다~ 넣어서 총 n x m개의 중복순열을 다 출력해주어야하는 문제이다.

 

아래와 같이 Python에서 작성하던 알고리즘 그대로 Swift로 언어만 바꾸어 구현했고,

제출을 했더니 "시간초과"가 떴다...

입출력에서 시간이 너무 많이 걸리나 싶어 아래와 같이 바꾸어 제출해보았다.

하나 이 문제를 풀며 알게 된 꿀팁은 Int를 String으로 형변환 할 때에는 Optional타입이 아니라 String타입이 쌩(?)으로 return된다.

 

하지만, String타입을 Int타입으로 형변환하면, Optional타입이 return된다!

+ 배열에 담긴 String들을 joined()함수로 문자열로 이어붙일 수 있다.

수정하여 시간까지 통과한 코드는 아래와 같다.

매 번 print()를 해주지 않고 result_s 라는 String에 이어붙여두고,

맨~ 마지막에 딱 한 번 출력을 해주었다.

Swift 입출력이 느린가.... 좀 공부해보고 포스팅을 해봐야겠다.