아직 많이 부족하나 레벨 2 관련 문제들도 시작하였습니다 하하!
설계
문자열을 split하여 나눠 순회하여 min, max 판별하기!
git : 최댓값과 최솟값
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12939
문제 풀이
설계대로 진행하였으며, 음수 문자의 Int 캐스팅 또한 지원합니다!
func solution(_ s:String) -> String {
let splitArray = s.split(separator: " ")
var min = Int.max
var max = Int.min
splitArray.forEach{ item in
guard let number = Int(item) else {
return
}
if(min > number) {
min = number
}
if ( max < number ) {
max = number
}
}
return "\(min) \(max)"
}
글을 쓰면서 생각이 된 부분인데 문제에 숫자에 대한 범위 값이 나타나지 않아, Int 범위를 초과하는 문자인 경우 동작이 안될 거 같습니다. UInt를 활용하면 더 넓은 범위를 확인 가능하나 음수를 따로 생각해줘야 할 거 같습니다.
다른 사람 풀이 분석
프로그래머스 - 한석호 , 여정수 님
func solution(_ s:String) -> String {
let intArr:[Int]=s.split(separator: " ").map({Int($0)!});
return String(intArr.min()!)+" "+String(intArr.max()!);
}
map, min, max를 활용한 방법입니다!
min, max 메소드에서 순환하여 반환해주지 않을거 같으나, 갑자기 궁금하니 한번 구현부를 확인해봐야네요~
금일도 모두들 화이팅입니다 :)
정리
문제에 제시되는 범위! 그냥 넘어가서는 안된다~
'알고리즘 & 문제풀이' 카테고리의 다른 글
알고리즘 - Big-O (0) | 2023.02.17 |
---|---|
프로그래머스 - L2 피보나치 수 (0) | 2023.02.17 |
프로그래머스 - L1 기사단원의 무기 (0) | 2023.02.15 |
프로그래머스 - L1 숫자 짝꿍 (0) | 2023.02.14 |
Queue- 자료구조 (0) | 2023.02.06 |