🔥개인 취미 목적으로 프로그래머스 문제를 정리한 게시글입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12944
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
✏️ 문제설명
정수를 담고 있는 배열 arr의 평균값을 return 하는 함수, solution을 완성해 보세요.
💡 제한사항
arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
📚 입출력 예
arr | answer |
[1, 2, 3, 4] | 2, 5 |
[5, 5] | 5 |
💻 소스 코드
class Solution {
public double solution(int[] arr) {
double sum = 0;
for(int arrs : arr) {
sum += arrs;
}
return sum / arr.length;
}
}
위 코드는 주어진 정수 배열 arr의 요소들의 평균값을 계산하는 메서드를 구현한 것입니다.
코드의 설명을 다음 동작과 같이 설명할 수 있습니다.
- arr 배열의 요소들을 더해줄 sum이라는 double형 변수를 선언하고 0으로 초기화합니다.
- 주어진 배열 arr을 향상된 for문으로 반복하면서 모든 요소를 sum에 더해줍니다.
- 배열의 모든 요소를 더해진 sum에 배열의 길이 arr.length를 나누어 평균을 계산한 후 반환합니다.
시간 복잡도
이 코드의 시간 복잡도는 배열의 길이에 선형적으로 비례합니다.배열의 모든 요소를 한 번씩 더하기 때문에 시간 복잡도는 O(n)입니다. 여기서 n은 배열의 길이를 나타냅니다.
공간복잡도
이 코드는 입력 배열 arr의 길이와 상관이 없으며, 상수 공간을 사용하기 때문에 공간 복잡도는 O(1)입니다. 메서드 내에서 추가적인 데이터 구조나 배열을 생성하지 않고, 고정된 수의 변수만 사용하므로 공간 사용량이 상수로 유지됩니다.
'🕊️ 프로그래머스 > Lv1' 카테고리의 다른 글
[프로그래머스] Lv.1 문자열을 정수로 바꾸기 - Java (0) | 2023.11.22 |
---|---|
[프로그래머스] Lv.1 x만큼 간격이 있는 n개의 숫자 - Java (0) | 2023.11.21 |
[프로그래머스] Lv.1 나머지가 1이 되는 수 찾기 - Java (0) | 2023.11.20 |
[프로그래머스] Lv.1 약수의 합 - 자바[Java] (0) | 2023.11.18 |
[프로그래머스] Lv.1 짝수와 홀수 - Java (0) | 2023.11.17 |
🔥개인 취미 목적으로 프로그래머스 문제를 정리한 게시글입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12944
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
✏️ 문제설명
정수를 담고 있는 배열 arr의 평균값을 return 하는 함수, solution을 완성해 보세요.
💡 제한사항
arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
📚 입출력 예
arr | answer |
[1, 2, 3, 4] | 2, 5 |
[5, 5] | 5 |
💻 소스 코드
class Solution {
public double solution(int[] arr) {
double sum = 0;
for(int arrs : arr) {
sum += arrs;
}
return sum / arr.length;
}
}
위 코드는 주어진 정수 배열 arr의 요소들의 평균값을 계산하는 메서드를 구현한 것입니다.
코드의 설명을 다음 동작과 같이 설명할 수 있습니다.
- arr 배열의 요소들을 더해줄 sum이라는 double형 변수를 선언하고 0으로 초기화합니다.
- 주어진 배열 arr을 향상된 for문으로 반복하면서 모든 요소를 sum에 더해줍니다.
- 배열의 모든 요소를 더해진 sum에 배열의 길이 arr.length를 나누어 평균을 계산한 후 반환합니다.
시간 복잡도
이 코드의 시간 복잡도는 배열의 길이에 선형적으로 비례합니다.배열의 모든 요소를 한 번씩 더하기 때문에 시간 복잡도는 O(n)입니다. 여기서 n은 배열의 길이를 나타냅니다.
공간복잡도
이 코드는 입력 배열 arr의 길이와 상관이 없으며, 상수 공간을 사용하기 때문에 공간 복잡도는 O(1)입니다. 메서드 내에서 추가적인 데이터 구조나 배열을 생성하지 않고, 고정된 수의 변수만 사용하므로 공간 사용량이 상수로 유지됩니다.
'🕊️ 프로그래머스 > Lv1' 카테고리의 다른 글
[프로그래머스] Lv.1 문자열을 정수로 바꾸기 - Java (0) | 2023.11.22 |
---|---|
[프로그래머스] Lv.1 x만큼 간격이 있는 n개의 숫자 - Java (0) | 2023.11.21 |
[프로그래머스] Lv.1 나머지가 1이 되는 수 찾기 - Java (0) | 2023.11.20 |
[프로그래머스] Lv.1 약수의 합 - 자바[Java] (0) | 2023.11.18 |
[프로그래머스] Lv.1 짝수와 홀수 - Java (0) | 2023.11.17 |