728x90
오늘의 문제는 프로그래머스
평균 구하기
문제
문제 접근 및 풀이 과정
오늘의 문제 권장 풀이 시간은 30분이었고, 저는 13분이 걸렸습니다.
개인적으로 문제가 어제 보단 쉬워서 더 빨리 풀 수 있었습니다.
아마 배열을 다루는 것이 코테의 가장 기본이라 연습하고 공부할 수 있도록 연속적으로 문제를 출제하신 것 같습니다.
문제 접근 방식
오늘 문제를 풀 때 주의할 점은 '인덱스의 합을 저장할 변수 sum의 자료형'이었습니다.
처음 주어진 코드를 보면 answer가 double형으로 선언된 것을 볼 수 있습니다.
그런데 만약 합을 구할 때 정수형으로 선언하면 어떻게 될까요?
배열이 [1, 2, 3, 4]인 경우를 예로 들어보겠습니다.
sum이 int형으로 선언 됐을 때
- 배열의 모든 요소를 더한 값은 10입니다.
- 배열의 길이 len은 4입니다.
- sum이 int이므로 sum / len은 10 / 4로 정수 나눗셈이 되어 2가 됩니다.
- 따라서 answer는 2.0라는 틀린 값을 저장하게 됩니다.
sum을 double형으로 선언 했을 때
- 배열의 모든 요소를 더한 값은 10.0이 됩니다.
- 배열의 길이 len은 4입니다.
- sum이 double이므로 sum / len은 10.0 / 4로 부동 소수점 나눗셈이 되어 2.5가 됩니다.
- 따라서 answer는 2.5라는 맞는 값을 저장하게 됩니다.
따라서 인덱스의 합을 저장할 변수에 double형을 사용하여 선언하였습니다.
문제 풀이
class Solution {
public double solution(int[] arr) {
int len = arr.length;
double sum = 0;
for(int i = 0; i < len; i++) {
sum += arr[i];
}
double answer = 0;
answer = sum / len;
return answer;
}
}
반복문 설계 자세히 알아보기
반복문은 초기화 부분과 본문 부분으로 나뉩니다.
반복문 초기화
(int i = 0; i < len; i++)
위 코드에서 i는 0으로 초기화되어 i < len까지 반복되고 반복이 끝날 때마다 i값은 1씩 증가합니다.
반복문 본문
sum += arr[i];
위 코드에서 `sum += arr[i];`는 배열의 `i`번째 인덱스 값을 `sum`에 더합니다.
이를 통해 배열의 모든 요소를 더해 'sum'에 저장합니다.
이렇게 오늘 2일차 TIL을 작성해 보았습니다.
728x90
'🍪 Ect > #Study' 카테고리의 다른 글
[99클럽 코테 스터디] 6일차 TIL 해시 (0) | 2024.07.27 |
---|---|
[99클럽 코테 스터디] 5일차 TIL 해시 (0) | 2024.07.26 |
[99클럽 코테 스터디] 4일차 TIL 문자열 (0) | 2024.07.25 |
[99클럽 코테 스터디] 3일차 TIL 문자열 (0) | 2024.07.25 |
[99클럽 코테 스터디] 1일차 TIL 배열 (0) | 2024.07.22 |
댓글