일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- synology
- beautifulsoup
- frontend
- pymongo
- Crawling
- OOP
- java
- atlas
- mongodb
- PYTHON
- github
- requests
- json
- javascript
- venv
- openapi
- body
- NAS
- CRUD
- POST
- Project
- flaskframework
- Algorithm
- flask
- mysql
- portfolio
- fetch
- CSS
- get
- backend
Archives
- Today
- Total
wisePocket
[Algorithm] 입력한 각도의 종류를 설명해주는 계산기 만들기 본문
입력한 각도의 종류를 설명해주는 계산기
정해진 나의 룰에 따라서 연습 문제를 계속해서 답안을 보지 않고 스스로 풀어보고자 한다.
핵심이 되었던 연습 과정은 아래 두개 과정이다.
물론 이 구조가 이제 Java를 배우면서 더 깊게 변경 될 예정이다.
하지만 해당 카테고리 페이지는
알고리즘 문제 해결을 하기 위한 연습이 주 목적이라서
기본적으로 내가 객체 인스턴스화를 통해 메서드 호출을 구분하면서
"연산"에 집중 할 수 있는 나만의 틀로 활용하고자 한다.
https://ohnyong.tistory.com/177
[Algorithm★] 4칙연산을 해주는 계산기 - 객체 지향 - 혼자 만들기+ChatGPT의 피드백 받기
https://ohnyong.tistory.com/178
[Algorithm★] 4칙연산을 해주는 계산기 - 객체 지향 - 혼자 만들기+ChatGPT의 피드백 적용
이건 조건이 많아보이지만 위 틀을 잡고 연산에만 집중하면 금방 풀 수 있다. 쳐다보는 것 보다 직접 메서드에 하나씩 옮기면서 남은 부분을 처리하는게 훨씬 머릿속으로 잘 그려졌다.
1. 문제 파악 과정
- 필요 데이터 파악
+--- 데이터 타입 확인
- 필요 메서드 파악
+--- 기본 입력부 input(){}
+-- 입력 값 갯수 확인
+-- 데이터 제한조건 파악(유효성검사 while loop)
+--- 기본 계산부 calculate(){}
+-- 필요 연산 확인
+-- 필요 조건 확인
+--- 기본 출력부 output(){}
+-- 출력할 데이터, 내용 확인
+--- 각 메서드 별 파라미터 전달 필요 부분 확인
2. 코드 작성 과정
- Main.java 실행부 생성 , Solution.java 클래스(설계도) 생성
- 클래스 member 구현
+--- 필요 데이터 정리에 따라 변수 선언
+--- 기본 생성자 선언
+--- 필요 메서드 정리에 따른 메서드 선언
+-- input(){}과 관련된 메서드부터 작성, 유효성 체크(진입부 메서드)
+-- calculate(){}의 실제 연산 로직 작성
+-- output(){}의 출력 관련 정리
- 실행부 Main.java에서 객체 인스턴스 생성 및 객체로부터 진입부 메서드 호출
1. Main.java
package Algorithm04; public class Main { public static void main(String[] args) { System.out.println("각에서 0도 초과 90도 미만은 예각,\n" + " 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다.\n" + " 각 angle이 매개변수로 주어질 때 \n" + "예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를\n" + "return하도록 solution 함수를 완성해주세요.\n" + "\n" + "예각 : 0 < angle < 90\n" + "직각 : angle = 90\n" + "둔각 : 90 < angle < 180\n" + "평각 : angle = 180\n" + "제한사항\n" + "0 < angle ≤ 180\n" + "angle은 정수입니다.\n"); Solution solution = new Solution(); solution.intputAngle(); } }
2. Solution.java
package Algorithm04; import java.util.Scanner; public class Solution { //필요데이터 //angleInputNum <-input 스캐너, int형, 0<angle<=180 제한사항 유효성체크 while, // angleStr <- 예각, 직각, 둔각, 평각 표현 // angleOutputNum <-output //필요메서드 //inputAngle() //calculate() //outputAngle() int angleInputNum; String angleStr; int angleOutputNum; Scanner sc = new Scanner(System.in); public Solution() { } void intputAngle() { while (true) { System.out.println("각도를 입력해주세요."); angleInputNum = sc.nextInt(); if (angleInputNum < 0 || angleInputNum > 180) { System.out.println("각도는 0~180도까지만 입력해주세요."); continue; } else { calculate(angleInputNum); break; } } } void calculate(int angleInputNum) { if (angleInputNum > 0 && angleInputNum < 90) { angleStr = "예각"; angleOutputNum = 1; outputAngle(angleStr, angleOutputNum); } else if (angleInputNum == 90) { angleStr = "직각"; angleOutputNum = 2; outputAngle(angleStr, angleOutputNum); } else if (angleInputNum > 90 && angleInputNum < 180) { angleStr = "둔각"; angleOutputNum = 3; outputAngle(angleStr, angleOutputNum); } else if (angleInputNum == 180) { angleStr = "평각"; angleOutputNum = 4; outputAngle(angleStr, angleOutputNum); } else { System.out.println("잘못된 접근 입니다."); } } void outputAngle(String angleStr, int angleOutputNum) { System.out.printf("입력하신 값은 %s이며 표현값은 '%d' 입니다.", angleStr, angleOutputNum); } }
'Java & Algorithm > Algorithm Practice' 카테고리의 다른 글
[Algorithm] 음식과 음료 주문, 계산서를 출력하는 계산기 만들기 (0) | 2023.08.02 |
---|---|
[Algorithm] 입력한 값 까지의 짝수들의 합을 구하는 계산기 만들기 (0) | 2023.08.01 |
[Algorithm] 두 개의 정수가 일치하는지 여부를 알려주는 계산기 만들기 (0) | 2023.08.01 |
[Algorithm] 출생년도를 구해주는 계산기 만들기 (0) | 2023.08.01 |
[Algorithm✅️] 4칙연산을 해주는 계산기 - 혼자 만들기+ChatGPT의 피드백 적용 (0) | 2023.08.01 |