contest441
에 출제된 첫번째 문제를 풀어보려고 한다. 첫번째 문제답게 아주 쉽게 편성이 되어있다.문제 설명
- 숫자
nums
배열이 주어지면 여기에서 합이 가장큰 subarray의 합을 return- subarray라서 무조건 한개이상의 배열원소를 포함해야함!
- 각원소는 unique한것만 카운팅이 가능하다 ! (같은 수 한번씩만)
문제 풀이
class Solution {
func maxSum(_ nums: [Int]) -> Int {
return (Set(nums).reduce(0) {
$0 + $1
})
}
}
class Solution {
func maxSum(_ nums: [Int]) -> Int {
return (Set(nums.filter{$0 >0}).reduce(0) {
$0 + $1
})
}
}
class Solution {
func maxSum(_ nums: [Int]) -> Int {
if(nums.count < 2){
return nums[0]
}
return (Set(nums.filter { $0 > 0 }).reduce(0) {
$0 + $1
})
}
}
class Solution {
func maxSum(_ nums: [Int]) -> Int {
let checkNums = nums.filter { $0 > 0 }
if checkNums.count < 1 {
if let tmp = nums.max() {
return tmp
} else {
return 0
}
}
return (Set(checkNums).reduce(0) {
$0 + $1
})
}
}
checkNums
로 원소가 전부 음수로 이루어져있는지 판단해줬다.최종 제출 코드
class Solution {
func maxSum(_ nums: [Int]) -> Int {
let checkNums = nums.filter { $0 > 0 }
if checkNums.count < 1 {
if let tmp = nums.max() {
return tmp
} else {
return 0
}
}
return (Set(checkNums).reduce(0) {
$0 + $1
})
}
}
제출이 얼마없는 문제가 출제돼서 그런지 통계는 잡히지 않았다.