반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 "프로그래머스(Lv.2) - [3차] n진수 게임" 문제를 풀었습니다.
Github
문제 링크
풀이
이번 문제는 문자열 처리 문제입니다.
1. 0부터 1씩 증가 시키며 String(, radix:)를 이용해 진법 변환을 합니다.
Swift에서는 진법 변환이 간단합니다.
count를 1씩 증가 시키며 radix에 input n을 넣어 진법 변환을 해줍니다.
그리고 str 배열에 넣어 문자열을 이어줍니다.
2. 튜브 차례의 글자 구하기
튜브 차례의 글자들을 구해야 합니다.
이것은 stride를 이용했습니다.
처음에는 0부터 문자열 길이부터 1씩 증가하면서 반복했는데요.
stride를 이용해 반복 횟수를 줄일 수 있었습니다.
감사합니다!
전체 코드
func solution(_ n:Int, _ t:Int, _ m:Int, _ p:Int) -> String {
var str: [Character] = []
var count = 0
while str.count <= m * t {
str += Array(String(count, radix: n))
count += 1
}
var result = ""
for i in stride(from: p-1, to: str.count-1, by: m) {
result += String(str[i])
if result.count == t {
break
}
}
return result.uppercased()
}
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형