java 19

[Java] 배열 연산

코드 테스트를 하면 기초 단계에서 아래의 문제를 만날 수 있다.정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.배열에 데이터를 넣어서 문제를 주면 큰 문제없이 풀 수 있지만,배열의 값에 될 것을 변수 1개로 제공하고 이것으로 연산해서 푸는 문제, 거기에 배열의 연산 포함된 문제가 나오면 어렵게만 느껴진다. 곰곰히..

Dev/Java 2025.05.01

[Project] 키오스크를 만들어보자

[요구사항] LV1. 기본적인 키오스크를 만들자더보기햄버거 메뉴 출력 및 선택하기✅ `Scanner`를 사용하여 여러 햄버거 메뉴를 출력합니다.✅ 제시된 메뉴 중 입력받은 숫자에 따라 다른 로직을 실행하는 코드를 작성합니다.✅ 반복문을 이용해서 특정 번호가 입력되면 프로그램을 종료합니다.LV2. 객체 지향 설계 적용 > 메뉴를 클래스로 관리해보자더보기메뉴를 List를 통해 관리해보자✅ `MenuItem` 클래스 생성하기 (`이름`, `가격`, `설명` 필드)✅ `main` 함수에서 햄버거 메뉴를 출력하기.✅ 반복문을 활용해 `menuItems`를 탐색하기LV3. 객체 지향 설계 적용 > 순서 제어를 클래스로 관리하기더보기Kiosk 클래스 생성하기✅ `MenuItem`을 리스트(List)로 관리하기✅ `s..

Sparta/Projects 2025.05.01

[Java] 반복문

반복문 (for, while, do-while)컴퓨터에게 일정한 형태의 작업을 반복적으로 수행하도록 할 때 사용한다.for문시작 조건이 종결조건을 불만족할 때까지 반복문 내 작성된 명령을 수행해라단, 1회 수행하고 나면 [조건변화수식]을 반영한 후 재수행해라for (시작조건; 종결조건; 조건변화수식) { ...}// 예시for(int i =1; i break 활용break: 해당 제어문에서 빠져 나오라는 명령어 (탈출 버튼)for 문 외에도 다른 반복문, 제어문에서 사용할 수 있다.더보기int customers = 5;for(int i =1; icontinue 활용continue: 해당 제어문의 조건에 만족하면 기존 명령 코드를 무시하라(스킵 버튼)for 문 외에도 다른 반복문, 제어문에서 사용할 수 ..

Dev/Java 2025.04.30

[Java] HashMap

HashMappublic class HashMap extends AbstractMap implements Map, Cloneable, Serializable Map 인터페이스를 구현한 자료구조키(key) - 값(value) 구조로 데이터를 저장한다.자물쇠가 있는 사물함 느낌 (키가 있어야 값을 꺼낼 수 있다.)내부적으로 해시 테이블(hash table)을 사용한다해시 함수로 “키” → “숫자 인덱스” 계산그 숫자를 배열의 슬롯으로 사용충돌 시 연결 구조로 관리빠른 검색, 삽입, 삭제 성능을 제공한다. (get(), put() )평균 O(1) 성능에 가까운 성능 제공더보기O(1) 성능(시간 복잡도) 데이터 크기가 아무리 커져도(대용량 데이터) 연산이 걸리는 시간이 거의 변하지 않는다는 뜻 시간 복잡..

Dev/Java 2025.04.29

[Java] Stream

Stream이란?컬렉션이나 배열 등의 데이터를 함수형 스타일로 처리할 수 있게 해주는 데이터 파이프라인- 반복문, 제어문 등 대신 Lambda(람다)를 사용해서 데이터 필터링, 변환, 집계 등을 간결하고 명확하게 표현할 수 있는 방법Stream 탄생"컬렉션(List)에 담긴 각 정수 요소 중 3보다 큰 숫자만 고르고, 해당 숫자에 10을 곱한 값을 새 리스트에 담으세요."를 코드로 작성하면 아래와 같다.List arrayList = new ArrayList(List.of(1, 2, 3, 4, 5));List ret1 = new ArrayList();for (Integer num : arrayList) { if(num > 3) { Integer multipliedNum = num * 10..

Dev/Java 2025.04.28

[Java] Lambda

Lambda가 무엇인가?익명 클래스를 더 간결하게 표현하는 문법익명의 함수를 정의하고 직접 전달하고 실행할 수 있는 방식더보기익명 클래스이름이 없는 클래스별도의 클래스 파일을 만들지 않고 코드 내에서 일회성으로 정의해 사용하기 때문인터페이스나 클래스의 구현, 상속을 활용해서 구현할 수 있다// 익명 클래스란?public interface Calculator { int sum(int a, int b);}/* ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ */public class Main { public static void main(String[] args) { // 익명 클래스 활용 Calculator calculator1 = new Calculator() { @..

Dev/Java 2025.04.25

[Java] System.out.print의 진실 (feat. toString() Override)

변수에 저장된 데이터(값)을 출력할 때 아래와 같은 print 메서드를 자주 사용한다.int a = 10;System.out.println(x); // 10 출력String str1 = "Syuare"System.out.println(name); // Syuare 출력더보기 그런데 클래스를 정의하여 인스턴스화한 뒤 해당 객체의 데이터를 출력해보면 대충 이상한 값이 출력되는데..BurgerJoint burgerJoint = new BurgerJoint("Hamburger");System.out.println("burgerJoint = " + burgerJoint); 확인해보니 해당 값은 '패키지명.클래스명@해시코드' 이다. 이걸 좀 더 깊게 파보려면 System.out.println()에 대해 알아볼 필요..

Dev/Java 2025.04.24

[Java] Generic

Generic 은 모든 타입을 매개변수로 사용할 수 있는, 뭔가 만능형인 이미지를 가지고 있었다. 그러나 실제 코드로 작성해보니 매개변수 자체만 봤을 때는 만능형이 맞지만,이 만능형을 활용을 하려니까 까다로운 부분이 있었다. 그래서 Generic에 대해 조금 더 알아보기로 했다.더보기Getter, Setter를 만들때는 편한 것 같은데,단순 설명을 들은 것만으로는 속성으로 선언한 변수를 메서드에 활용을 하려니까 여간 쉽지 않았다. Generic / 제네릭코드 작성 시점에 다룰 타입을 미리 고정하지 않고,나중에 객체나 메서드를 호출하여 사용할 때 타입을 결정할 수 있도록 하는 문법데이터 타입을 '일반화' 한다.데이터 타입이 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정된다.Generic은..

Dev/Java 2025.04.23

[Java] Enum

enum (열거형, eunmerated type)열거형: 서로 연관된 상수들의 집합enum은 자바 1.5부터 문법적으로 지원 시작했다.더보기enum은 어쩌다 등장 / 탄생하게 되었을까 (enum 탄생 배경) enum이 없을 때는 class 내 상수들을 주석으로 정의하였다.*상수: 변하지 않는 값/* * 1. 사과 * 2. 복숭아 * 3. 바나나*/int type = 1; // 사과를 의미 그런데 설명이 적힌 주석이 코드랑 멀어지거나 실수로 삭제할 경우 문제가 될 수 있다.이걸 개선하기 위해 아래와 같이 변수 = 값으로 정의할 수 있다.- 상수는 변하지 않는 값이기 때문에 final을 사용하여 상수화를 하였고,- static을 통해 메모리를 한 번만 할당되도록 하였다. private final static..

Dev/Java 2025.04.22

[Java] double 형 값의 소수점 처리

double형은 실수형 자료형 타입을 말하며, 소수점이 있는 실수는 대체로 double형을 통해 값을 저장한다. 이 double 형 값을 출력할 경우 소수점이 출력되는데, 소수점 끝이 0인데, 0이 그대로 출력되는 경우가 있다.더보기public class Main { public static void main(String[] args) { double result; int a = 50000; int b = 2; result = (double)a/b; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("default:..

Dev/Java 2025.04.21