일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- C++
- 딥러닝
- 자바 실습
- 정보처리기사필기
- 자바
- 코딩테스트
- 컴퓨터구조
- 머신러닝
- 연습문제
- 정보처리기사실기
- 텍스트마이닝
- html/css
- 컴퓨터비전
- SQL
- 데이터입출력구현
- 운영체제
- CSS
- JSP/Servlet
- numpy/pandas
- 데이터베이스
- 정수와유리수
- 혼공머신
- 파이썬라이브러리
- pandas
- 중학수학
- 파이썬
- 데이터분석
- 영어공부
- 중학1-1
- CNN
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
배열 7 - 이차원 배열과 미션 문제 실습 본문
이제 지난번에 학습했던 엘리스 자바1에서 이차원 배열 문제를 풀어보려고 한다. 벌써 11시가 다 되어서 잠이 슬슬 몰려오지만 이차원 배열과 미션 문제, 그리고 실력 확인 테스트까지는 학습하고 취침하려고 한다.
그래야 내일 새벽에 일어나서 이차원 배열 수업 영상을 들으면서 학습을 이어갈 수 있을 것 같다.
실습 7 - 이차원 배열
배열의 원소가 모두 출력되었다. 혹시 대괄호를 바로 출력하는 방법이 있나 살펴보았는데, 그런 건 없고 일일이 문자열로 넣어주어야 했다. 이 문제는 별로 어렵지 않았다.
실습 8 - 이차원 배열 반복하기
이 문제는 for문과 foreach문을 각각 사용하여 문제를 푸는 실습이다. 한번 풀어보기로 하자.
두 개의 반복문으로 모두 잘 출력이 되었다. foreach 문은 처음 사용해보는데 무척 잘 풀었다. 정답을 보지도 않고도.. 이제 미션 문제 두 문제만 풀고 이 단원을 마무리해볼 것이다.
미션 1 - 평균은 넘겠지
첫번째 도전
이 문제는 많이 어려웠다. 한참을 고민했지만 빨간줄을 없애지 못했다. 정답을 참고하면서 풀었는데도 말이다.
다시 풀어보기
드디어 풀었다. 사실 고친 건 한 가지밖에 없었다. 반복문과 조건문이 있을 때 어떤 것을 먼저 써야 하는지 아직 잘 모르는 것 같다. for문은 항상 먼저 쓰고 그 안에 조건을 쓰는 거였다. 그래야 어떤 틀에서 반복을 할지 알게 되기 때문이다.
조금 전의 코드에서는 평균보다 넘는 사람들 한에서만 반복이 되는 거였다.
미션 2 - 반별 평균 점수 구하기
이 문제는 정말 어려워서 지난번에도 풀지 못하고 넘어갔던 문제이다. 이번에는 꼭 해결하고 말 거다!
문제를 다 풀었다. 점수를 더하는 부분이 가장 어려웠는데 이 부분은 검색하며 참고했고, 나머지는 모두 스스로 풀었다.
1. 왜 grades[0].length를 사용하는지?
이 for 문은 0부터 grades[0].length - 1까지 순회하며, 각 반의 점수를 더하고 있다. 여기서 중요한 점은:
- grades[0].length를 기준으로 for 문을 돌리는 이유는 1반과 2반의 학생 수가 동일하다고 가정하고 있기 때문이다. 각 반의 학생 수(점수의 개수)가 동일하기 때문에, 하나의 기준(grades[0].length 또는 grades[1].length)만으로 반복문을 제어할 수 있다.
- 만약 학생 수가 다른 반이라면, 두 반의 길이를 비교하고 더 짧은 배열의 길이를 기준으로 반복문을 돌리거나 각각의 반에 대해 별도로 반복문을 실행해야 한다.
- grades[0].length나 grades[1].length를 사용해도 두 반의 학생 수가 같기 때문에 결과는 동일하다.
2. sum += grades[0][i]가 의미하는 것
- for 문은 두 반의 점수를 각각 순회한다.
- sum1 += grades[0][i]는 1반의 점수를 계속 더해나가고, sum2 += grades[1][i]는 2반의 점수를 더한다.
즉, 각각의 반의 점수들을 더할 때 이 두 개의 배열이 필요한 것이다.
지난 번에는 0점을 맞았지만 이번에는 다 풀어서 100점을 맞았다. 정말 뿌듯하고 기쁘다!
학습을 마치고
밤 12시가 넘어서야 2차원 배열 엘리스 학습이 끝났다. 이제 남은 건 최종확인 테스트를 풀어보는 것이다. 이 문제는 지금까지 어떤 과목이든 한번도 풀어본 적이 없었지만 이제는 풀어볼 수 있을 것 같다.
하지만 지금은 비몽사몽하니 내일 풀어보는 것이 더 나을 것 같다.
'프로그래밍 언어 > 자바' 카테고리의 다른 글
반복문과 배열 그리고 예외 처리 16 - 이차원 배열 기초 개념 (0) | 2024.08.13 |
---|---|
자바 1 실력 확인 테스트 문제 풀기 (0) | 2024.08.13 |
반복문과 배열 그리고 예외 처리 15 - for-each 문 (0) | 2024.08.12 |
반복문과 배열 그리고 예외 처리 14 - 로그인 프로그램 만들기 예제 (0) | 2024.08.12 |
반복문과 배열 그리고 예외 처리 14 - 일차원 배열 3 : 값 입력 받고 출력하기 (0) | 2024.08.12 |