Java 프로그래밍 연습 문제

200 개 이상의 실습 코딩 챌린지를 통해 Java 프로그래밍을 연습하세요. 데이터 구조, 알고리즘, OOP 및 핵심 Java 개념을 다루는 실제 프로젝트를 통해 초보자가 기술을 향상시키는 데 적합합니다.

Java

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

강의 계획

LinkedList 요소 접근하기

HashMap 요소 접근하기

다른 클래스에서 정적 속성 접근하기

문자열 동일성 확인

인덱스를 사용하여 LinkedList 생성

학생 점수의 최소 및 최대값 찾기

Deque 자료 구조 구현

매개변수를 사용한 람다 표현식 구현

다단계 상속 구현

ArrayList 에서 두 번째 요소 제거하기

플레이어 나이 오름차순 정렬

클래스 메서드 정보 검색

스레드의 동시 실행

문자 발생 횟수 계산하기

사용자 정의 정규 표현식

티켓팅 시스템의 데이터 공유 문제

다중 인터페이스의 기본 메서드

도형 그리기

4 분의 1 에서 0 으로

큐 수동 구현

데이터 작업을 위한 람다 표현식

행렬 요소 정보 출력

중복 숫자 제거

관광지 티켓 가격 책정

형제 간 돈 나누기 게임

도서관 시뮬레이션

예외를 사용한 사과 분배 문제 해결

HashSet 을 사용하여 데이터 정보 저장하기

큰 수의 덧셈

세 자리 수의 자릿수 합계

유일신

Stream 사용

신분증 번호 유효성 검사

간단한 자바 출력문 작성하기

암호화 및 복호화 구현

학생 이름 접근 및 수정

슈퍼클래스의 오버라이드된 메서드 접근하기

클래스 내 정적 속성 접근하기

슈퍼클래스 생성자 접근하기

ArrayList 에 요소 추가하기

특정 인덱스에 ArrayList 요소 추가하기

추상화를 이용한 넓이 계산 프로그램

체중과 키를 이용한 BMI 계산

한 변의 길이로 정육면체 부피 계산하기

급여 기반 직원 보너스 계산

원금을 기반으로 이자 계산하기

선수 평균 신장 계산하기

배열을 이용한 백분율 계산

클래스를 사용하여 직사각형 넓이 계산하기

직사각형 치수 계산

자릿수의 합 계산

숫자의 팩토리얼 계산하기

두 삼각형 넓이 계산하기

숫자의 거듭제곱 계산

Java 에서 표준 편차 계산하기

자연수 합계 계산

원의 넓이 계산하기

정사각형 넓이 계산하기

메서드 두 번 호출하기

합격, 불합격 또는 유효하지 않은 점수 확인

Java 를 사용하여 IcyHot 온도 확인하기

배열의 첫 번째 요소와 마지막 요소 비교하기

입력된 숫자 연속 합산하기

Java 를 사용하여 킬로미터를 마일로 변환하기

문자열 내 모음 개수 세기

정수 내 자릿수 세기

문자 'a'의 출현 횟수 세기

계산기 프로그램 만들기

Enum 클래스 생성 - 크기

동물 - 개 계층 구조 생성

숫자의 약수 판별하기

입력값 중 더 긴 문자열 결정하기

학생들 간의 최대 악수 횟수 결정

학생 성적 판별

두 인수의 동등성 판별

짝수 또는 홀수 판별

Java 에서 하샤드 수 판별하기

암스트롱 수 판별하기

소수 판별하기

어린이들에게 초콜릿 나누어 주기

직원 급여 관리를 캡슐화하기

Enum 상수를 문자열로 표현하기

3 의 배수 제외하기

화씨를 섭씨로 변환하는 프로그램

두 해시셋 간의 차이점 찾기

두 HashSet 의 교집합 찾기

100 미만 최대 배수 찾기

배열에서 가장 작은 요소 찾기

가장 어린 형제 찾기

ArrayList 에서 '니모' 찾기

구간 내 소수 찾기

두 수의 최대공약수 (GCD) 찾기

최소공배수 찾기

피즈버즈 프로그램: 사용자 입력 설명

반복문을 사용하여 구구단 생성하기

자기 자신을 제외한 가장 큰 약수

자체 나누기 숫자 식별하기

Java 를 사용하여 풍부한 수 (Abundant Number) 식별하기

제곱 면적 계산 인터페이스 구현

LinkedList 를 사용한 큐 구현

서로 다른 매개변수를 위한 메서드 오버로딩

다른 매개변수 타입을 사용한 메서드 오버로딩

HashMap 요소 수정하기

Java 를 이용한 ArrayList 수정

다중 클래스 메서드 오버라이딩

클래스를 상속받는 여러 클래스

배열에 10 곱하기

Final 메서드 오버로드 시연

부모 클래스 메서드 오버라이딩

회문수 확인

복소수 덧셈 수행하기

파운드를 킬로그램으로 변환하는 프로그램

기본 자료형을 래퍼 클래스로

모든 유형의 데이터 출력하기

배열에서 짝수 출력하기

알파벳이 아닌 문자 출력하기

모든 데이터 타입의 값 출력하기

배열 요소 출력하기

문자열의 개별 문자 출력하기

문장 세 번 출력하기

HashMap 에서 요소 제거하기

숫자 뒤집기 프로그램

상점 이익/손실 계산기

단리 계산 프로그램

문자열 연결: 두 텍스트 결합

문자열 변환: 첫 글자 대문자화

좌표 빼기

임시 변수를 사용한 두 숫자 교환

삼각형의 유효한 내각

윤년 조건 검증

Java 를 사용하여 소수 여부 확인

클래스 인스턴스 확인

투표 자격 판별 프로그램

비행기 전투 게임

외계 세포 분열

임의의 반지름을 가진 원의 넓이

자동차 판매 시장

은행 계좌 프로그램

아름다움을 다투는 꽃들

Spring Boot 빌드 및 배포

명함 배포

카이사르 암호화

정육면체 부피 계산하기

원기둥 부피 계산하기

채팅방 시뮬레이션

반 등수 매기기

클래스 속성과 메서드

품사별 단어 분류

닭과 토끼가 함께 있는 우리

설정 파일 내용

애너테이션을 사용한 클래스 파라미터 설정

부분 문자열 출현 횟수 세기

어노테이션 정의하기

그래픽 인터페이스의 설계 및 구현

다중 인터페이스의 설계 및 구현

우주선 귀환 가능성 판단하기

예외 처리를 이용한 삼각형 성립 여부 판별

철학자들의 식사 동기화

반복자 (Iterator) 를 사용한 데이터 정보 표시

예외 처리를 이용한 사과 나누기

효율적인 학생 성적 분석 프로그램

학생 정보 입력

성별 정보를 위한 Enum 클래스

피보나치 수열 프로그래밍

파일 내용 필터링

UDP 프로토콜 기반 파일 업로드

다중 요구사항을 위한 흐름 제어문

재미있는 코드 완성

Google 홈페이지에서 정보 가져오기

잘못된 성적 처리하기

Java 로 LabEx 시작하기

각 월의 일수 계산하기

카운트다운 타이머 스레드 구현

Stock 클래스 구현하기

파스칼 삼각형 구현하기

문자열 분할 구현하기

문자열 유틸리티 클래스 구현

지능형 진료 호출 서비스

연결 리스트의 교차점 찾기

Java 엔지니어 급여 계산

공융의 너그러움

Java 를 이용한 땅따먹기 카드 게임 시뮬레이션

웨인의 자동 높이 계산 실행

로그 정보 분류

첫눈에 반하다

동적 계획법을 활용하여 비행기 체스 점수 최대화하기

비행기 파괴 전략 최대화

세 숫자 중 최댓값 구하기

상속을 이용한 무기 설계 수정

자아도취 수 판별

Java 배열을 이용한 스페이스 브릿지 탐색

무자본 보석상 마케팅

회문 수의 개수

여와가 인간을 빚다

다양한 클래스의 Class 객체 얻기

메서드 참조를 이용한 연산

스프링 구매를 위한 최적의 동전 선택

스레드 릴레이 경주 시뮬레이션 최적화

삼각형 출력하기

도서 정보 출력하기

DOM 을 이용한 XML 데이터 정보 파싱

삼각형 내부의 점

생산자 - 소비자 큐 구현

반사 (Reflection) 를 사용하여 Person 객체 생성하기

finally 를 사용하여 스캐너 리소스 해제하기

조건부 실행으로 공주 구출하기

Java 에서 일차원 배열 뒤집기

단어 목록 역순 출력

영어 문장 단어 순서 뒤집기

equals 메서드 재작성

세 그룹의 데이터를 번갈아 실행하기

SAX 를 이용한 XML 데이터 파싱

二维 배열에서 검색하기

서블릿 사용자 정보 조회

간단한 학생 관리 시스템

가상 대학 관리 시스템

우주선 속도 제어

살려주시옵소서, 주군이시여

트리 나선형 순회

계단 오르기와 균형 예측

TreeSet 을 사용하여 데이터 정보 저장하기

누적 방식을 활용한 근력 훈련

String 클래스 생성자

문자열 정보 통계

String 클래스 메서드

학생 관리 시스템

학생 성적 순위 시스템

부분 문자열 출현 횟수 계산

엘프 소환 게임 플레이

마법의 주머니

벽에는 귀가 있다

유랑하는 지구

오 센트의 소원

상수 풀 이해하기

예외를 사용한 사용자 등록 유효성 검사

코드를 절약하기 위한 상속 활용

언제 돈을 충분히 모을 수 있을까

객체를 파일에 쓰기

음과 양

소개

239개 hands-on coding challenge 라이브러리로 Java 문제 해결력을 강화합니다. 짧은 syntax와 arithmetic 문제부터 data structure, object-oriented design, file, functional API, concurrency, networking, 일부 application technology까지 범위가 넓습니다.

하나의 가이드 경로가 아닌 비선형 practice bank입니다. 현재 공부하는 주제에 맞는 과제를 선택하고 약점을 다시 연습하며, 모든 챌린지를 순서대로 끝내지 않고도 작은 console program에서 전문 과제로 진행할 수 있습니다.

학습 내용

관련 챌린지를 완료하면 다음을 할 수 있습니다.

  • input, operator, condition, loop, method, array, matrix, string, numeric type을 작은 프로그램에 적용합니다.
  • calculation, number property, sequence, search, sorting, text processing, traversal 문제를 풉니다.
  • ArrayList, LinkedList, queue, deque, map, set, iterator, custom data structure를 구성·조작합니다.
  • class, encapsulation, inheritance, abstraction, interface, overloading, overriding, enum, generic으로 동작을 모델링합니다.
  • lambda, method reference, stream, annotation, reflection, regular expression을 집중형 과제에 사용합니다.
  • exception을 처리하고 text file, object serialization, configuration data, DOM/SAX XML parsing을 다룹니다.
  • shared state, synchronization, producer-consumer queue, 고전 concurrency exercise로 thread를 조정합니다.
  • core Java 밖의 개별 GUI, UDP networking, servlet, HTTP, Spring Boot scenario를 탐색합니다.

추천 대상

Java 기본 syntax를 이미 알고 많은 독립 연습을 원하는 학습자를 위한 과정입니다. coding practice를 준비하는 학생, 특정 API나 language feature를 복습하는 개발자, 입문 과정 이후의 도전을 찾는 중급 학습자에게 적합합니다.

선수 지식: 기본 Java program을 작성·compile·debug하고 variable, control flow, method, class, array를 이해해야 합니다. 전문 챌린지는 collection, file, concurrency, networking, XML, servlet, Spring Boot 관련 배경을 요구하며 모든 prerequisite를 순서대로 가르치지는 않습니다.

학습 환경: 239개 챌린지는 제공된 Java coding 환경에서 실행합니다. 대부분 source code를 편집·compile·실행하고, 일부는 file, GUI API, networking, servlet tooling, Spring Boot를 사용하므로 환경 세부 사항이 달라질 수 있습니다.

자주 묻는 질문

정말 Beginner 과정인가요?

Beginner로 표시되고 많은 과제가 기초를 연습하지만 generic, reflection, concurrency, networking, servlet, Spring Boot 같은 중급·전문 주제도 있습니다. Java가 처음이면 초보자를 위한 Java를 먼저 완료하세요.

239개 챌린지를 모두 순서대로 풀어야 하나요?

아닙니다. 비순차 과정으로 설정되어 있습니다. 검색 가능한 practice library로 사용하고 현재 주제와 준비도에 맞는 문제를 선택하세요.

가이드 tutorial인가요, 독립 exercise인가요?

239개 lesson walkthrough가 아니라 challenge-style coding task입니다. 각 과제는 구현할 문제를 제시하므로 이미 배운 개념을 적용하는 데 가장 유용합니다.

Spring Boot, servlet, GUI, networking 과제로 각 분야를 체계적으로 배우나요?

아닙니다. 큰 모음에 포함된 개별 확장 챌린지입니다. framework, Web, desktop, network development를 체계적으로 배우려면 Java 기초 후 전용 과정을 선택하세요.

강사

labby
Labby
Labby is the LabEx teacher.