일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 자바
- 자바스크립트
- html/css
- CSS
- 머신러닝
- 연습문제
- 디버깅
- 티스토리챌린지
- 중학수학
- 정보처리기사필기
- 컴퓨터비전
- 개발일기
- 파이썬
- 컴퓨터구조
- 정보처리기사실기
- 중학1-1
- JDBC
- 데이터베이스
- 자바 실습
- JSP/Servlet
- SQL
- 자바스크립트심화
- JSP
- 오블완
- 혼공머신
- c언어
- 딥러닝
- 문자와식
- 상속
- 데이터분석
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
메서드 12 - 완전수 구하는 5단계 다시 한번 풀어보기 본문
이번에는 무척 까다로운 문제이지만 한번 풀어보려고 한다. 1단계부터 하나씩 풀다 보면 문제를 해결할 수 있을 것이다. 그럼 바로 문제를 풀어보겠다.
1. 두 수가 약수인지 아닌지 확인하기
num1과 num2가 어떨 때 약수가 되는지를 알고 조건을 만드는 것이 이 문제에서 가장 어려운 부분이다. 약수가 되려면 큰 수에서 작은 수를 나누되 그 나머지가 0이 되면 된다.
num1, num2의 값을 바꾸자 false가 되었다.
2. 약수 구하기
정답을 보지 않고 이 문제도 혼자서 아주 잘 풀었다. 처음에는 10의 약수라는 표제어가 반복되기도 했는데 블록 위치를 바꾸어서 코드를 수정했더니 이제는 잘 출력되고 있다.
3. 약수의 합 구하기
메서드에 result 변수를 사용하자 오류가 뜨고 있다. 이건 result를 메인 함수에서 담아주었기 때문인 것 같다. 그 이유가 무엇일지 고민해 보았다.
코드 수정하기
리턴 타입에서 sum을 사용했기 때문에 print 함수에서도 sum을 사용해야 한다. 그리고 result는 여기서 변수로 선언하지 않았기 때문에 사용할 수 없는 것이었다. 하지만 이렇게 print 구문을 사용하면 sum 값의 진행상황이 계속해서 출력되므로 보기가 좋지 않아 선생님은 사용하지 않았던 거였다.
이렇게 코드를 변형해 보며 더 많은 것들을 이해하게 되는 걸 느낀다.
최종 코드 만들어보기
4. 완전수인지 판별하기
메서드에서는 대부분 출력이 되지 않는 것 같다. result로 값을 담아주었으나 왜 출력이 되지 않는지 의문이었다. 하지만 isPerfectNumber 메서드는 true나 false 값을 반환하지만, 그 반환된 값을 화면에 출력하지 않았기 때문에 사용자는 결과를 확인할 수 없는 거였다.
이때 출력 코드를 메인 함수에 넣어주면 된다.
5. 완전수 구하기
이 문제를 처음 학습할 때는 1시간도 넘게 생각하면서 풀었었다(이 5단계만). 근데 두 번째 학습할 때는 너무나도 쉽게 이해가 되어 정말 신기했다. 그것도 방송을 틀어놓고 학습을 하느라 집중력이 그리 높지 않았는데도 말이다.
이제 완전수를 구하는 것도 잘할 수 있게 되었다.
학습을 마치고
이렇게 해서 오늘 완전수를 구하는 5단계 실습을 모두 진행해 보았다. 코드는 전체를 붙여볼까도 했지만 이미 다 정리했기에 그럴 필요는 없을 것 같다. 이제 엘리스에서 어려웠던 문제들도 해결하고 남은 메서드 문제를 풀어볼 것이다.
오늘이 가기 전에 클래스 학습을 들어가는 것이 오늘의 목표이다.
'프로그래밍 언어 > 자바' 카테고리의 다른 글
객체 지향 프로그래밍과 클래스 1 - 클래스 소개 (0) | 2024.08.15 |
---|---|
메서드 13 - 문자열 클래스와 미션 문제 다시 풀어보기 (0) | 2024.08.15 |
메소드 11 - 사칙연산과 큰 수 비교 실습하기 (0) | 2024.08.15 |
메서드 10 - 메서드 기초 실습 (0) | 2024.08.15 |
반복문과 배열 그리고 예외 처리 28 - 연습문제 실습편 풀어보기 4 : 14~16번 문제 (0) | 2024.08.15 |