오늘의 학습 키워드
- 알고리즘 (특강)
- 4주차 HW
- ...
알고리즘 특강
- 알고리즘의 필요성
우리가 사용하는 프로그램은 알고리즘 + 자료구조로 이루어져 있다
알고리즘은 복잡한 문제를 효율적이고 효과적으로 해결
문제 풀이의 과정을 더 안전하고, 빠르고, 수행하기 쉽도록 도와줌
- 자료구조의 필요성
효율적인 데이터 관리 가능 : 데이터의 효율적인 저장과 검색을 가능하게 하여 처리 시간을 줄이고 성능을 향상
데이터 조직 : 데이터를 논리적으로 구성하여 이해하고 접근하기 쉽게 만듬
재사용성 : 일반적인 데이터 구조는 여러 응용 프로그램에서 재사용할 수 있어 개발시간/노력 절약
알고리즘 최적화 : 적절한 데이터 구조의 선택은 처리하는 알고리즘의 효율성 상승
- 일반적인 알고리즘
- 탐색 알고리즘
- 정렬 알고리즘
- 최단 경로 알고리즘
- 자료구조 종류
- 배열
- 연결 리스트
- 해시 테이블
- 그래프
- 스택 / 큐
- 트리
4주차 HW
parser 클래스
// 자바 정규표현식
private static final String OPERATION_REG = "[+\\-*/]";
private static final String NUMBER_REG = "^[0-9]*$";
private final Calculator calculator = new Calculator();
public Parser parseFirstNum(String firstInput) {
// 구현 1.
if(firstInput.matches(NUMBER_REG)){
calculator.setFirstNumber(Integer.parseInt(firstInput));
}
return this;
}
public Parser parseSecondNum(String secondInput) {
// 구현 1.
if(secondInput.matches(NUMBER_REG)){
calculator.setSecondNumber(Integer.parseInt(secondInput));
}
return this;
}
public Parser parseOperator(String operationInput) {
// 구현 1.
if(operationInput.matches(OPERATION_REG)){
switch(operationInput) {
case "+" -> calculator.setOperation(new AddOperation());
case "=" -> calculator.setOperation(new SubstractOperation());
case "*" -> calculator.setOperation(new MultiplyOperation());
case "/" -> calculator.setOperation(new DivideOperation());
}
}
return this;
}
public double executeCalculator() {
return calculator.calculate();
}
정규표현식을 처음 사용해봐서 이렇게 하는게 맞는지 햇갈리는 부분이 있었다
메인 클래스 ( 예외처리를 하는부분이였는데.. )
public class Main {
public static void main(String[] args) {
boolean calculateEnded = false;
// 구현 2.
try{
CalculatorApp.start();
}catch (Exception e)
{
System.out.println("잘못된 입력 발생");
}
}
}
public class BadInputException extends Exception {
public BadInputException(String type) {
super("잘못된 입력입니다! " + type + "을 입력해주세요!");
}
}
주어진 코드중 위의 BadInput예외처리 코드가 있는데 이를 메인쪽에 적용하는 부분이 잘 안되었다
'TIL > Web Back' 카테고리의 다른 글
[Sparta] 내일배움캠프 WIL 1주차 (0) | 2024.04.28 |
---|---|
[Sparta] 내일배움캠프 6일차 TIL (0) | 2024.04.26 |
[Sparta] 내일배움캠프 4일차 TIL (0) | 2024.04.24 |
[Sparta] 내일배움캠프 3일차 TIL (0) | 2024.04.23 |
[Sparta] TIL 2일차 (0) | 2024.04.22 |