배운 내용 🏃
알고리즘과 자료구조
알고리즘이란?
알고리즘(Algorithm)은 어떤 작업을 수행하기 위해
입력을 받아서 원하는 출력을 만들어내는 과정을 기술한 것이다
자료구조란?
자료 구조(Data structure)는 데이터 값의 모임, 또 데이터 간의 관계
그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다
어떤 자료 구조를 선택하느냐에 따라 효율적인 알고리즘 사용이 가능하다
프로그램
프로그램은 알고리즘을 컴퓨터가 이해하고 실행할 수 있는 특정 프로그래밍 언어로 표현한 것
프로그램 = 알고리즘 + 자료구조
알고리즘과 자료구조는 진짜 중요하다...
자료구조의 필요성
효율적인 데이터 관리 : 데이터의 효율적인 저장과 검색을 가능하게 하여 처리 시간을 줄이고 성능을 향상시킨다
데이터 조직: 데이터를 논리적으로 구성하여 이해하고 접근하기 쉽게 만든다
데이터 추상화: 데이터 저장의 구현 세부 정보를 숨기고 프로그래머가 데이터 조작의 논리적 측면에 집중할 수 있도록 한다
재사용성: 일반적인 데이터 구조는 여러 응용 프로그램에서 재사용할 수 있어 개발 시간과 노력을 절약한다
알고리즘 최적화: 적절한 데이터 구조의 선택은 데이터를 처리하는 알고리즘의 효율성에 상당한 영향을 미칠 수 있다
자료 구조의 형태
배열
Linked list
Hash
그래프
스택
FILO(First In Last Out) 중요!!!
큐
트리
서브트리 가질 수 있다
개인과제 계산기 만들기를 진행했다
요구사항 1-1
Scanner를 사용하여 양의 정수 2개(0 포함)를 전달 받을 수 있습니다.
• 양의 정수는 각각 하나씩 전달 받습니다.
• 양의 정수는 적합한 타입으로 선언한 변수에 저장합니다.
public class App {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("첫 번째 숫자를 입력하세요: ");
int firstNumber = sc.nextInt();
// Scanner를 사용하여 양의 정수를 입력받고 적합한 타입의 변수에 저장합니다.
System.out.print("두 번째 숫자를 입력하세요: ");
int secondNumber = sc.nextInt();
// Scanner를 사용하여 양의 정수를 입력받고 적합한 타입의 변수에 저장합니다.
System.out.println("첫번째숫자,두번째숫자="+firstNumber+","+secondNumber);
}
}
Scanner sc = new Scanner(System.in);를 사용해서 sc로 입력을 받고
첫 번째 정수 + 두 번째 정수를 입력받아서
마지막에 첫번째숫자,두번째숫자가 각각 출력 된다
요구사항 1-2
Scanner를 사용하여 사칙연산 기호를 전달 받을 수 있습니다.
• 사칙연산 기호를 적합한 타입으로 선언한 변수에 저장합니다. (charAt(0))
public class App {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("첫 번째 숫자를 입력하세요: ");
int firstNumber = sc.nextInt();
// Scanner를 사용하여 양의 정수를 입력받고 적합한 타입의 변수에 저장합니다.
System.out.print("두 번째 숫자를 입력하세요: ");
int secondNumber = sc.nextInt();
// Scanner를 사용하여 양의 정수를 입력받고 적합한 타입의 변수에 저장합니다.
System.out.print("사칙연산 기호를 입력하세요: ");
char operator = sc.next().charAt(0);
System.out.println("operator = " + operator);
}
}
요구사항 1-3
입력받은 양의 정수 2개와 사칙연산 기호를 사용하여 연산을 진행한 후 결과값을 출력합니다.
• 사칙연산 기호에 맞는 연산자를 사용하여 연산을 진행합니다
• 입력받은 연산 기호를 구분하기 위해 제어문을 사용합니다. (e.g.if, switch)
• 연산 오류가 발생할 경우 해당 오류에 대한 내용을 정제하여 출력합니다
• e.g. “나눗셈 연산에서 분모(두번째 정수)에 0이 입력될 수 없습니다
//사칙연산 구현
int result = 0;
switch (operator) {
case '+' :
result = firstNumber + secondNumber;
break;
case '-' :
result = firstNumber - secondNumber;
break;
case '*' :
result = firstNumber * secondNumber;
break;
case '/' :
if (secondNumber == 0) {
System.out.println("다시 입력하세요. 나누기에서 두번째 수는 0 입력 불가능 합니다."); //오류 출력
System.exit(0); //종료
} else {
result = firstNumber/ secondNumber;
}
break;
default:
System.out.println("사칙연산 기호를 다시 입력하세요.");
System.exit(0);
}
System.out.println("결과 : " + result);
}
}
마무리🔥
자료구조와 알고리즘은 꾸준히 공부하고 학습을 해야한다
계산기 개인 과제는 1단계는 할만했지만
2단계는 버거웠다 더 열심히 공부해야겠다
'TIL' 카테고리의 다른 글
TIL - 2024/05/09 (0) | 2024.05.10 |
---|---|
TIL - 2024/05/08 (2) | 2024.05.08 |
TIL - 2024/05/03 (0) | 2024.05.03 |
TIL - 2024/05/02 (0) | 2024.05.02 |
TIL - 2024/05/01 (0) | 2024.05.01 |