https://school.programmers.co.kr/learn/courses/30/lessons/120871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
변수
- haveNo3Array = 3의 배수가 아니거나 3이 들어가지 않은 숫자를 받는 Int형 배열
- i = 10진수 , 1부터 시작
- j = i를 문자열로 매핑한 문자열 배열
내 풀이)
haveNo3Array 요소의 숫자가 n보다 크지 않을 경우 반복
*n은 1부터 시작, haveNo3Array는 인덱스 0부터 시작이므로
j -> i를 문자열로 변경 후 각각의 문자로 담긴 문자열 배열로 매핑
i가 3으로 나누었을 경우 나머지가 0 이고 j배열이 문자열 "3"을 가지고 있지 않다면 haveNo3Array에 추가
i 는 반복할때마다 1증가
haveNo3Array의 n번째 - 1 요소를 반환
import Foundation
func solution(_ n:Int) -> Int {
var haveNo3Array = [Int]()
var i = 1
while haveNo3Array.count < n {
let j = String(i).map{String($0)}
if i % 3 != 0 && !j.contains("3"){
haveNo3Array.append(i)
}
i += 1
}
return haveNo3Array[n-1]
}
* 매핑을 하지 않고도 String형으로 변환하여 .contains 메서드를 이용해 포함되었는지 확인 가능
'Swift랑 친해지기 > programmers 풀기' 카테고리의 다른 글
[프로그래머스] 문자 반복 출력하기 (Swift) (0) | 2022.11.12 |
---|---|
[프로그래머스] 오픈채팅방 (Swift) (0) | 2022.11.12 |
[프로그래머스] 프린터 (Swift) (0) | 2022.11.09 |
[프로그래머스] 모의고사 (Swift) (0) | 2022.11.08 |
[프로그래머스] 세균 증식 (Swift) (0) | 2022.11.07 |