728x90
오늘 프로그래머스로 문제를 풀다가 나의 코드의 충격을 느껴 기록을 한다..😦
문제와 나의 코드는 아래와 같다.
# 문제 설명
정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
import Foundation
func solution(_ array:[Int]) -> [Int] {
var maxNum = 0
var numIndex = 0
var count = 0
for i in array {
if maxNum < i {
maxNum = i
numIndex = count
}
count += 1
}
return [maxNum, numIndex]
}
코드를 작성하면서..뭔가 더 간결하게 작성할 수 있을 것 같지만.. 나는 그 방법이 뭔지 모르니까 내 기준에서 코드를 작성했다..
코드 통과 후 다른 사람들이 올린 코드 문법을 보며 살짝(?) 신기했다..
그중 처음 보는 문법이 있어서 학습 시작!
그것은 바로 max() 와 firstIndex(of:) 이다.
var numbers: [Int] = [4,7,2,5,8,1,3,2]
numbers.max() // Optional(8)
numbers.max()! // 8
numbers.firstIndex(of: 3) // Optional(6)
numbers.firstIndex(of: 5)! // 3
위의 코드와 같이 numbers.max()는 배열의 최댓값을 얻을 수 있고,
numbers.firstIndex(of:)는 배열에서 내가 원하는 값의 인덱스를 찾을 수 있다 !!
max()와 firstIndex(of:)는 반환값이 Optional 값이니까 언래핑 해주는 것을 잊지말자 !!
이러한 개념들을 이용하면 위의 장대한 나의 코드들은.. 아래와 같이 단순해진다..
func solution(_ array:[Int]) -> [Int] {
return [array.max()!, array.firstIndex(of: array.max()!)!]
}
하핫.. 오늘도 이렇게 배워가는 나 화이팅이다..🧐
728x90
'📝 iOS > 잡다한 공부 기록' 카테고리의 다른 글
22.11.1 / String, Array 돌아보기 (reversed(), sort()) (0) | 2022.11.01 |
---|---|
22.10.27 / String 돌아보기 ( contains() ) (0) | 2022.10.27 |