순열과 조합 시리즈 3탄!
중복 순열로, 사실상 n개의 자연수를 m개의 자리에 한 번씩 다~ 넣어서 총 n x m개의 중복순열을 다 출력해주어야하는 문제이다.
아래와 같이 Python에서 작성하던 알고리즘 그대로 Swift로 언어만 바꾸어 구현했고,
제출을 했더니 "시간초과"가 떴다...
입출력에서 시간이 너무 많이 걸리나 싶어 아래와 같이 바꾸어 제출해보았다.
하나 이 문제를 풀며 알게 된 꿀팁은 Int를 String으로 형변환 할 때에는 Optional타입이 아니라 String타입이 쌩(?)으로 return된다.
하지만, String타입을 Int타입으로 형변환하면, Optional타입이 return된다!
+ 배열에 담긴 String들을 joined()함수로 문자열로 이어붙일 수 있다.
수정하여 시간까지 통과한 코드는 아래와 같다.
매 번 print()를 해주지 않고 result_s 라는 String에 이어붙여두고,
맨~ 마지막에 딱 한 번 출력을 해주었다.
Swift 입출력이 느린가.... 좀 공부해보고 포스팅을 해봐야겠다.