일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Crawling
- json
- portfolio
- backend
- beautifulsoup
- OOP
- flaskframework
- PYTHON
- NAS
- Algorithm
- mysql
- requests
- fetch
- openapi
- synology
- pymongo
- flask
- javascript
- body
- java
- CRUD
- Project
- github
- frontend
- get
- mongodb
- venv
- atlas
- CSS
- POST
Archives
- Today
- Total
wisePocket
[Algorithm] 입력한 값 까지의 짝수들의 합을 구하는 계산기 만들기 본문
Java & Algorithm/Algorithm Practice
[Algorithm] 입력한 값 까지의 짝수들의 합을 구하는 계산기 만들기
ohnyong 2023. 8. 1. 23:06입력한 값을 최대 값으로하여 0부터 값까지의 짝수들의 합을 구하는 계산기
정해진 나의 룰에 따라서 연습 문제를 계속해서 답안을 보지 않고 스스로 풀어보고자 한다.
핵심이 되었던 연습 과정은 아래 두개 과정이다.
물론 이 구조가 이제 Java를 배우면서 더 깊게 변경 될 예정이다.
하지만 해당 카테고리 페이지는
알고리즘 문제 해결을 하기 위한 연습이 주 목적이라서
기본적으로 내가 객체 인스턴스화를 통해 메서드 호출을 구분하면서
"연산"에 집중 할 수 있는 나만의 틀로 활용하고자 한다.
https://ohnyong.tistory.com/177
[Algorithm★] 4칙연산을 해주는 계산기 - 객체 지향 - 혼자 만들기+ChatGPT의 피드백 받기
https://ohnyong.tistory.com/178
[Algorithm★] 4칙연산을 해주는 계산기 - 객체 지향 - 혼자 만들기+ChatGPT의 피드백 적용
이제부터 퀴즈처럼 연산 부분이 시작된다. 이제 Java 기본에서 배웠던 반복문의 특징을 응용해서 풀어내야 한다. 문제가 간단해보여도 어떤 제어문을 사용 할지, 어느 부분을 내가 컨트롤 할 수 있을지 생각해야 해서 이런 문제는 자주 접해보는 수 밖에 없다. 지각능력이 좋으면 금방 아이디어를 얻을 수 있을 것 같다.
1. 문제 파악 과정
- 필요 데이터 파악
+--- 데이터 타입 확인
- 필요 메서드 파악
+--- 기본 입력부 input(){}
+-- 입력 값 갯수 확인
+-- 데이터 제한조건 파악(유효성검사 while loop)
+--- 기본 계산부 calculate(){}
+-- 필요 연산 확인
+-- 필요 조건 확인
+--- 기본 출력부 output(){}
+-- 출력할 데이터, 내용 확인
+--- 각 메서드 별 파라미터 전달 필요 부분 확인
2. 코드 작성 과정
- Main.java 실행부 생성 , Solution.java 클래스(설계도) 생성
- 클래스 member 구현
+--- 필요 데이터 정리에 따라 변수 선언
+--- 기본 생성자 선언
+--- 필요 메서드 정리에 따른 메서드 선언
+-- input(){}과 관련된 메서드부터 작성, 유효성 체크(진입부 메서드)
+-- calculate(){}의 실제 연산 로직 작성
+-- output(){}의 출력 관련 정리
- 실행부 Main.java에서 객체 인스턴스 생성 및 객체로부터 진입부 메서드 호출

1. Main.java
package Algorithm05; public class Main { public static void main(String[] args) { System.out.println("정수 n이 주어질 때,\n" + " n이하의 짝수를 모두 더한 값을\n" + " return 하도록 solution 함수를 작성해주세요.\n" + "\n" + "제한사항\n" + "0 < n ≤ 1000"); Solution solution = new Solution(); solution.inputNum(); } }
2. Solution.java
package Algorithm05; import java.util.Scanner; public class Solution { //정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요. // //제한사항 //0 < n ≤ 1000 //필요데이터 //입력값 n //스캐너 //0 < n ≤ 1000 유효성검사 while //result //필요메서드 //inputNum() //calculate() //n이하의 짝수 //ex) 5면, 2, 4이다. (2*i) < n //i가 증가하면서 2의 배수로 진행, result에 값을 누적하면서 n전까지 가는 방식으로 가보자. //outputSum() int inputNum; int result; Scanner sc = new Scanner(System.in); public Solution() { } void inputNum() { while (true) { System.out.println("짝수합을 구할 최대 숫자를 입력하세요."); inputNum = sc.nextInt(); if (inputNum < 0 || inputNum > 1000) { System.out.println("최대 숫자는 1~1000범위로 입력해주세요."); continue; } else { calculate(inputNum); break; } } } void calculate(int inputNum) { for (int i = 1; i <= inputNum; i++) { if (i * 2 <= inputNum) { result += i * 2; } else { break; } } outputSum(inputNum, result); } void outputSum(int intputNum, int result) { System.out.printf("0부터 %d까지의 짝수를 모두 더한 값은 %d와 같습니다.", intputNum, result); } }
'Java & Algorithm > Algorithm Practice' 카테고리의 다른 글
[Algorithm] 입력한 인원에 따른 필요한 피자판 수를 구하는 계산기 만들기 (0) | 2023.08.02 |
---|---|
[Algorithm] 음식과 음료 주문, 계산서를 출력하는 계산기 만들기 (0) | 2023.08.02 |
[Algorithm] 입력한 각도의 종류를 설명해주는 계산기 만들기 (0) | 2023.08.01 |
[Algorithm] 두 개의 정수가 일치하는지 여부를 알려주는 계산기 만들기 (0) | 2023.08.01 |
[Algorithm] 출생년도를 구해주는 계산기 만들기 (0) | 2023.08.01 |