분류 전체보기 42

[알고리즘] 시간 복잡도

💡 대부분의 내용을 Do it! 알고리즘 코딩테스트 with JAVA 강의를 참고하여 정리하였습니다. 시간 복잡도 알고리즘에서 시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟수를 의미한다. 일반적으로 1초에 1억번의 연산을 할 수 있다. 문제에서 시간 제한이 2초라면, 2억 번 이하의 연산 횟수로 문제를 해결해야 한다! 연산 횟수는 1초에 1억번 연산하는 것을 기준으로 생각한다. 시간제한이 2초라면, 2억번 이하의 연선 횟수로 문제를 해결해야 한다! 시간 복잡도 활용 시간 복잡도를 계산하려먼 데이터의 개수와 제한 시간을 보면 된다. 🧐 [문제 1] N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. - 시간 제한 : 2초 - 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,..

Java/알고리즘 2024.01.29

[Java 문법 총정리] final

💡 대부분의 내용을 점프 투 자바 에서 참고하여 정리하였습니다. final 자료형에 값을 단 한번만 설정할 수 있게 강제하는 키워드이다. 값을 한 번 설정하면 해당 값을 변경할 수 없으므로, 값이 바뀌면 안 될 때 사용한다. final int n = 123; n = 456; // 컴파일 오류 발생!!! list와 final 리스트도 final로 선언하면 재할당이 불가능하다. 하지만, 리스트에 값을 더하거나 빼는 것은 가능하다. (재할당만 불가능할 뿐.) final ArrayList a = new ArrayList(Arrays.asList("a", "b")); a = new ArrayList(Arrays.asList("c", "d")); // 컴파일 에러 발생!!! a.add("c"); // 에러 발생하지..

Java/문법 2024.01.27

[Java 문법 총정리] 문자열 ↔ 숫자 형변환 / int ↔ char

💡 대부분의 내용을 점프 투 자바 에서 참고하여 정리하였습니다. 형변환 (문자열 ↔ 숫자) 문자열을 숫자로 Integer.parseInt() String str = "100"; int i = Integer.parseInt(str); Long i = Integer.parseLong(str); int형 뿐만 아니라 byte, short, long, float, double 등 숫자 관련 타입은 전부 가능함. pareseByte(), parseShort() … Integer는 int 자료형의 Wrapper 클래스이다. 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어 진다. 기본 타입 - int, char, double 등 참조 타입 - class..

Java/문법 2024.01.27

[Java 문법 총정리] 상수 집합 enum

💡 대부분의 내용을 점프 투 자바 에서 참고하여 정리하였습니다. enum enum 자료형은 서로 연관이 있는 것들의 상수 집합을 정의할 때 사용한다. 예를 들어, 어느 카페에서 판매하는 커피의 종류가 다음과 같다고 가정한다. 아메리카노 카페라떼 밀크티 이를 enum으로 상수집합을 만들 수 있다. enum CoffeType { AMERICANO, CAFELATTE, MILKTEA }; 이렇게 정의한 상수집합은 다음과 같이 사용할 수 있다. public class Sample { enum CoffeeType { AMERICANO, CAFELATTE, MILKTEA }; public static void main(String[] args) { System.out.println(CoffeeType.AMERICA..

Java/문법 2024.01.27

[Java 문법 총정리] Math 클래스, Random 클래스

💡 대부분의 내용을 점프 투 자바 에서 참고하여 정리하였습니다. Math 클래스 Math 클래스는 java.Lang 패키지에 포함된 클래스로 수학과 관련된 일련의 작업들을 처리할 수 있다. Math 클래스의 다양한 메소드들은 전부 static으로 구현되어 있으므로 따로 객체를 생성하지 않고 사용할 수 있다. System.out.println(Math.max(10,50)); // 50 출력 System.out.println(Math.min(10,50)); // 10 출력 System.out.println(Math.abs(-10)); // 10 출력 System.out.println(Math.random()); // 0.0 ~1.0 사이의 난수 출력 메소드 max(), min() 입력한 두 데이터 중 더 큰..

Java/문법 2024.01.27

[Java 문법 총정리] 배열, 리스트, 맵, 집합

💡 대부분의 내용을 점프 투 자바 에서 참고하여 정리하였습니다. 배열 자료형 바로 옆에 [] 기호를 붙여서 생성한다. int[] odds = {1,3,5,7,9}; String[] weeks = {"월", "화", "수", "목", "금", "토", "일"}; String[] arr = {"I", "love", "Java"}; 1. 배열의 길이 설정 String[] weeks = new String[7]; 초기값 없이 배열 변수를 만들 때, 숫자값을 넣어 길이를 정해주어야 한다. 그렇지 않으면 오류가 발생한다. String[] weeks = new String[]; // 길이에 대한 숫자값이 없으므로 컴파일 오류 발생 2. 배열의 값에 접근 String[] weeks = {"월", "화", "수", "목..

Java/문법 2024.01.24

[Java 문법 총정리] 자료형 (정수, 실수, 부울, 문자, 문자열, StringBuffer)

java 문법 구멍이 많아서 기초부터 다시 빠르게 짚고 넘어갈 겸 간단하게 정리해본다. 👩‍💻 💡 대부분의 내용을 점프 투 자바 에서 참고하여 정리하였습니다. 정수 int int i = 30; long long l = 30L; short short s = 30; byte byte b = 30; int와 long을 주로 사용하고, short와 byte는 잘 사용하지 않는다. Long이 int보다 더 큰 범위이다. (더 많은 숫자를 담을 수 있음) long > int > short > byte 형변환 int i = (int) 30L; // long -> int 강제 형변환 long ll = 30; // int -> long 자동 형변환 실수 double double dd = 30.0; float float ..

Java/문법 2024.01.24

[운영체제] 컴퓨터의 요소

💡 본 글은 면접을 위한 CS 전공지식 노트 도서를 참고하여 정리하였습니다. INTRO 컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 이루어져 있다. 각각에 대해 자세히 알아보자. CPU CPU(Central Processing Unit)는 컴퓨터에서 가장 핵심적인 역할을 수행하는 부분으로, 인간의 두뇌에 비유할 수 있다. 제어 장치, 레지스터, 연산 장치로 구성되어 있다. 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼이다. 운영체제의 커널(관리자 역할)이 프로그램을 메모리에 올려 프로세스로 만들면, CPU(일꾼)가 이를 처리 제어 장치 제어 장치(CU, Control Unit)는 프로세스 조작을 지시하는 CPU의 부품이다. 즉, 컴퓨터의 모든 ..

운영체제 2024.01.24

[Spring] AOP

💡 김영한님의 스프링 입문 강의를 듣고 정리한 내용입니다. 1. AOP란? Spring AOP Spring AOP는 스프링 프레임워크에서 제공하는 기능 중 하나이다. Spring AOP는 공통적인 관심사(로깅, 보안, 트랜잭션)를 모듈화 하여 코드 중복을 줄이고 유지 보수성을 향상하는데 도움을 준다. 🌟 AOP는 재사용성과 유지 보수성을 높여준다! 관점 지향 프로그래밍 (AOP, Aspect Oriented Programming) AOP (Aspect Oriented Programming)은 관점 지향 프로그래밍이라고 불린다. 관점 지향 프로그래밍이란, 메소드나 객체의 기능을 핵심 관심사와 공통 관심사로 분리하여 프로그래밍하는 것이다. 이때 핵심 관심사(core concern)는 객체가 가져야 할 본래의..

Spring 2024.01.22

[Spring] welcome page 만들기

💡 김영한님의 스프링 입문 강의를 듣고 정리한 내용입니다. 1. 프로젝트 생성하기 https://start.spring.io/에 접속하여 다음과 같이 프로젝트를 생성한다. start.spring.io spring boot를 기반으로 spring 프로젝트를 만들어주는 사이트이다. 프로젝트 선택 Project : Gradle - Groovy Spring Boot : 3.x.x Language : Java Packaging : Jar Java : 17 or 21 Project Metdata groupId : hello artifactId : hello-spring 위와 같이 입력하면 Name과 Package name은 자동으로 생성된다. Dependencies 여기서 불러올 라이브러리를 선택해주면 된다. Sp..

Spring 2024.01.03