[programmers] Java Lv.2 - 피로도
·
Algorithm Solving/Java
https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 설명 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요..
[Java] 상속(Inheritance)과 다형성(Polymorphism) 이해
·
TIL (Today I Learned)
1. 상속(Inheritance) 개념상속(Inheritance)은 객체 지향 프로그래밍(OOP)의 핵심 개념으로, 기존 클래스를 기반으로 새로운 클래스를 만드는 방법이다. 1-1. 상속의 특징코드 재사용 : 부모 클래스에서 정의된 속성과 메서드를 자식 클래스에서 재사용확장성 : 자식 클래스는 부모 클래스의 기능을 확장하거나 변경(`@Override`)할 수 있다.계층적 구조 : 클래스 간의 관계를 계층적으로 설계하여 프로그램 구조를 체계적으로 만들 수 있다.단일 상속 : Java는 클래스의 다중 상속을 지원하지 않으며, 하나의 부모 클래스만 상속받을 수 있다. (인터페이스를 통해 다중 상속과 유사한 기능 구현 가능) 1-2. 상속의 용어부모 클래스 (Parent Class)상..
[Java] 예외 처리 방법: 기본 구조, throw/throws, 사용자 정의 예외
·
TIL (Today I Learned)
예외 ExceptionJava에서 예외(Exception)은 프로그램 실행 중에 발생할 수 있는 오류를 말한다.예외 처리를 통해 프로그램이 비정상적으로 종료되는 것을 방지할 수 있다. 예외 처리의 기본 구조try { // 예외가 발생할 가능성이 있는 코드} catch (ExceptionType e) { // 예외를 처리하는 코드} finally { // 선택 사항: 항상 실행되는 코드 (자원 정리 등)}`try`: 예외가 발생할 가능성이 있는 코드를 감싼다.`catch`: 특정 예외가 발생했을 때, 이를 처리하는 코드를 작성한다.`finally`: 예외 발생 여부와 관계없이 항상 실행되는 블록으로, 자원 정리 등에 사용된다. 예외 처리 예시try { int result = 10 / ..
[Java] 스택 자료구조: Stack과 Deque 비교
·
TIL (Today I Learned)
스택스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 및 후입 선출(LIFO - Last In First Out) 구조로 되어 있다. 자료를 넣는 것을 '밀어넣는다' 하여 푸쉬(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 하는데, 이때 나중에(최근에) 넣은(푸쉬한) 값이 먼저 나오게 된다. Stack 클래스LIFO(Last In First Out) 방식으로 동작하는 `Stack`클래스`java.util`패키지에 포함된 클래스이다.Stack 선언import java.util.Stack;// 선언 방법Stack stack = new Stack(); 주요 메서드1. ..
[Java] 람다(Lambda)와 스트림(Stream) API 개념 및 예제
·
TIL (Today I Learned)
람다(Lambda)1. 람다(Lambd) 표현식람다 표현식(Lambda Expression)은 익명 함수를 생성하기 위한 간결한 문법으로, Java 8에서 도입되었다.코드의 간결성과 가독성을 높임주로 함수형 인터페이스(Functional Interface)와 함께 사용✏️ 함수형 인터페이스 (Functional Interface)Java에서 함수형 인터페이스는 단 하나의 추상 메서드만 가지는 인터페이스를 의미한다.람다 표현식이나 메서드 참조를 지원하는 기반이다.2. 기본 문법(매개변수) -> { 실행문 }매개변수 : 함수에 전달할 값. 매개변수가 1개면 괄호 생략 가능-> : 람다 표현식의 매개변수와 실행문을 구분실행문 : 메서드의 본문으로, 한 줄일 경우 중괄호{} 생략 가능3. 람다 표현식 예제람다를..
[Java] Generic의 원리와 활용법
·
TIL (Today I Learned)
GenericJava의 제네릭(Generic)은 데이터 타입을 일반화하여 코드 재사용성을 높이고 타입 안정성을 보장하는 기능이다.Generic은 일반적(generalized)이라는 뜻으로, 다양한 데이터 타입에서 동작하도록 설계된 클래스나 메서드를 작성할 수 있다. Generic의 기본 원리Java 1.5 이전에는 타입을 지정하지 않고 Object를 사용하여 모든 데이터를 처리했다.List list = new ArrayList();list.add("Hello");list.add(123); // 서로 다른 타입 추가 가능String str = (String) list.get(0); // 강제 캐스팅 필요 💥문제점강제 캐스팅 필요 : 반환 값을 원하는 타입으로 변환타입 안정성 부족 : 잘못된 타입이 추가되..
[Java] Enum 사용법과 활용 예시
·
TIL (Today I Learned)
enum 클래스enum은 enumeration의 약자로 열거형이라고 한다. 서로 관련 있는 상수들의 집합을 정의할 때 사용된다. 기본 개념enum은 여러 상수를 그룹화하여 사용할 수 있는 데이터 타입.상수를 정의할 때 타입 안정성을 보장하며, 코드를 더 읽기 쉽고 유지보수 가능하게 만들어준다.✏️ 타입 안정성 (type safety).프로그래밍 언어에서 데이터 타입이 잘못 사용되는 것을 방지하는 능력.코드에서 데이터 타입에 맞는 값만 사용되도록 보장하여 프로그램의 안정성을 높이는 것.enum 상수는 enum 클래스의 public static final 인스턴스이므로 변경이 불가능하다. enum은 다음과 같은 메서드를 기본 제공한다:values(): 모든 상수를 배열로 반환valueOf(String nam..
[BOJ] 백준 1181번 : 단어 정렬 - Java
·
Algorithm Solving/Java
https://www.acmicpc.net/problem/1181import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); // 중복을 제거하고 저장하기 위해 Set 선언 Set strSet = new HashSet(); for (int i = 0; i strList = new Array..
[TIL] 자료구조(List / Set / Map)를 활용한 입/출력 (25-01-01)
·
TIL (Today I Learned)
🤖 진행 사항 🤖 Java 문법 종합반 2주차 숙제import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String title = sc.nextLine(); switch (s) { case "List" -> { List list = new ArrayList(); while (true) { s = sc.nextLine(); ..
[TIL] JVM 개념 및 JDK 설치, Git 심화 특강 (24-12-31)
·
TIL (Today I Learned)
🤖 진행 사항 🤖 Java 문법 종합반 1주차 1-1 ~ 1-9 / 숙제2주차 2-1 ~ 2-11Git 심화 특강Java 문법 종합반1. JVM Java Virtual Machine의 약자로 “자바 가상 머신”이라는 뜻  JVM 환경 구성1) JREJava Runtime Environment "자바 실행 환경" 2) JDKJava Development Kit "자바 개발 키트"JRE 역할compiler : .java ➡️ .classJDB : 디버깅Window에 JDK 설치더보기Adoptium 재단에서 제공하는 Open JDK로 설치하기 위해서, 기존에 설치했던 Zulu JDK를 삭제했다.LTS 17 버전 설치https://adoptium.net/ Home | AdoptiumThe Adoptium® ..