아요 개발 일기
[프로그래머스] Level 1. 평균 구하기 본문
반응형
안녕하세요!!
오늘은 평균구하기! 문제를 풀었어요 ㅎㅎ
문제
내가 쓴 답변
저는 for in 문을 사용해서 배열값을 result 값에 추가해줬어요.
arr와 result 값은 데이터 유형이 Int라 return 할때는 Double로 변환해서 계산 값을 보내줬습니다!
잘 풀었다고 생각한 풀이
여러분.. 이거 보세요.... 간결하고 깔끔한 코드......
func solution(_ arr:[Int]) -> Double {
return Double(arr.reduce(0,+))/Double(arr.count)
}
func solution(_ arr:[Int]) -> Double {
return Double(arr.reduce(0, { $0 + $1 })) / Double(arr.count)
}
둘의 형식은 비슷하므로 reduce 내부에 있는 수식만 따로 설명하겠습니다!
간단하게 reduce 함수부터 알아볼까요?
reduce는 데이터를 합쳐주기 위해 사용합니다. 내부의 값들을 결합하여 새로운 값을 만들어주죠!
이제 위의 코드의 reduce를 풀어보자면!
두 방식 모두 초기 값을 0으로 지정해 주었습니다. reduce(0, -)부분
다른 점은 + 와 $0 + $1 이죠?
+ : 배열의 전체 값의 합 저장하는 것을 뜻함
$0 + $1 : 배열의 첫 값과 다음 값의 합 (제가 적었던 result += i 연산과 유사해요!)
뜯어 보니까 뜻하는게 같은 것 같아요!
+만 사용하는게 더 간결한 것 같네요??
세상에 저는 아직 멀었다는걸 한번 더 느끼고 갑니다..
틀린 부분이나 혹시 더 좋은 풀이 방법이 있다면 댓글로 알려주세요!
감사합니다ㅎㅎ
반응형
'Algorithms > 문제 풀이' 카테고리의 다른 글
[프로그래머스]Level 1. 두 정수 사이의 합 (0) | 2023.01.16 |
---|---|
[프로그래머스] Level 1. 나머지가 1이 되는 수 찾기 (0) | 2023.01.16 |
[프로그래머스] Level 1. 수박수박수박수박수박수? (0) | 2023.01.16 |
[프로그래머스] Level1. 짝수와 홀수 (0) | 2023.01.16 |
[구름LEVEL] Level1. 16진수 Feat. 진수 변환 (0) | 2023.01.16 |