728x90
https://school.programmers.co.kr/learn/courses/30/lessons/87390#qna
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
시간초과로 혼자 풀기 실패
이 글을 보고 이해했다 -> https://hogumachu.tistory.com/21
이중for문을 만들어 이용할 필요 없이 딱 필요한 부분의 값만 구하여 리턴하는데
left와 right값과 n의 몫과 나머지를 이용하면 값을 만들어 낼 수 있다.
// 시간 초과 코드
func solution(_ n:Int, _ left:Int64, _ right:Int64) -> [Int] {
var index = -1
var result = [Int]()
for i in 0 ..< n {
for j in 0 ..< n {
index += 1
if index >= left && index <= right {
if i >= j {
result.append(i + 1)
} else {
result.append(j + 1)
}
}
}
}
return result
}
// 블로그 보고 수정!
func solution(_ n:Int, _ left:Int64, _ right:Int64) -> [Int] {
let n = Int64(n)
var result = [Int]()
for i in left ... right {
let value = max( Int((i/n)+1), Int(i%n+1) )
result.append(value)
}
return result
}
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스: 해시 - 베스트앨범 (0) | 2023.11.29 |
---|---|
프로그래머스: 연습문제 - 최솟값 만들기 (0) | 2023.11.27 |
프로그래머스: 완전탐색 - 카펫 (0) | 2023.10.07 |
프로그래머스: 월간 코드 챌린지 시즌1 - 이진 변환 반복하기 (1) | 2023.10.06 |
프로그래머스: 기사단원의 무기 (0) | 2023.10.04 |
댓글