분류 전체보기 53

프로그래머스 [level 0 / Java] 홀짝 구분하기

문제 자연수 n이 입력으로 주어졌을 때 만약 n이 짝수이면 "n is even"을, 홀수이면 "n is odd"를 출력하는 코드를 작성해 보세요. 제한사항1 ≤ n ≤ 1,000 입출력 예입력 #1100 출력 #1100 is even 입력 #21 출력 #21 is odd풀이 import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(n + " is " + ((n % 2 == 0)? "even" : "odd"))..

프로그래머스 [level 0 / Java] 대소문자 바꿔서 출력하기

문제영어 알파벳으로 이루어진 문자열 str 이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.제한사항1 ≤ str의 길이 ≤ 20str은 알파벳으로 이루어진 문자열입니다. 입출력 예입력 #1aBcDeFg 출력 #1AbCdEfG풀이 import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); String answer = ""; for (int i = 0; i 설명charAt(i) :..

프로그래머스 [level 0 / Java] 문자열 반복해서 출력하기

문제문자열 str과 정수 n이 주어집니다.str이 n 번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.제한사항1 ≤ str의 길이 ≤ 101 ≤ n ≤ 5 입출력 예입력 #1string 5 출력 #1stringstringstringstringstring풀이 import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int n = sc.nextInt(); if (1 설명length() : 문자열의 길이를 알고자 할 때 사용된다. 배열..

프로그래머스 [level 0 / Java] a와 b 출력하기

문제정수 a와 b가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요.제한사항-100,000 ≤ a, b ≤ 100,000 입출력 예입력 #14 5 출력 #1a = 4b = 5풀이 import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println("a = " + a + "\nb = " + b); }} 설명스캐너 : 자바에서 가장 쉬우면서도..

프로그래머스 [level 0 / Java] 문자 출력

문제주어진 코드는 변수에 데이터를 저장하고 출력하는 코드입니다. 아래와 같이 출력되도록 빈칸을 채워 코드를 완성해 주세요.출력 예시321Let's go!풀이 import java.util.Scanner;public class Solution { public static void main(String[] args) { String message = "Let's go!"; System.out.println("3\n2\n1"); System.out.println(message); }} 설명println : 자바의 출력문. 출력하고 싶은 내용 혹은 변수명에 담긴 내용을 그대로 출력한다.문자열을 출력하기 위해서는 큰따옴표로 묶어줘야한다.큰 따옴표가 없는 것은 모두 ..

자료구조, 알고리즘과 Big O

1. 자료 구조와 Big O1 - 1. 선형 자료구조의 성능ArrayList VS LinkedListArrayList는 조회 속도가 매우 빠르지만 중간 삽입/삭제는 느리다.ArrayList는 연속된 메모리 공간에 데이터를 저장하므로 CPU 캐시 효율이 높다.LinkedList는 중간 삽입/삭제에 유리하지만, 인덱스 접근은 느리다.LinkedList는 분산된 노드를 참조하므로 메모리 접근 비용이 크다.실제로 중간 삽입/삭제가 많지 않다면 대부분의 경우 ArrayList가 더 효율적이다.대용량 데이터를 처리할 때는 메모리 사용량도 성능에 영향을 주므로, 자료구조 선택 시 구조적 차이뿐만 아니라 메모리 최적화 측면도 고려해야 한다.Stack & Queue기본적으로 두 자료구조는 양 끝에서만 접근하기 때문에, ..

자바 고급(JAVA) 2026.05.28

Big O에 대한 이해

1. 알고리즘 성능 분석의 필요성1 - 1. 사용자 경험과 성능의 관계사용자는 시스템이 얼마나 빨리 반응하는지를 체감하며, 대기 시간이 길수록 이탈률이 높아진다. 따라서 응답속도는 사용자 만족도에 직결된다.따라서 성능이 느린 애플리케이션은 첫 방문 시 나쁜 인상을 주게 되고, 장기적으로 사용자의 반복 방문률에도 영향을 준다. 이는 커머스, 콘텐츠 플랫폼 등에서 고객 유지율과 직접 연결된다.모바일 네트워크 환경이나 성능이 낮은 디바이스에서는 알고리즘 효율성이 더 중요하다. 따라서 리소스가 제한된 환경에서는 효율적인 코드가 사용자 경험을 좌우한다.1 - 2. 시스템 자원과 비용의 관계클라우드 기반 인프라에서는 자원 사용량이 곧 요금으로 이어진다.CPU, 메모리, 네트워크 자원을 과도하게 사용하는 알고리즘은..

자바 고급(JAVA) 2026.05.28

JCF 주요 인터페이스

1. List 컬렉션List는 객체를 일렬로 저장하고 인덱스로 관리하는 자료구조로, 배열과 유사하지만 크기가 동적으로 변하고 다양한 편의 메서드를 제공한다. 또한 저장된 순서를 유지하며, 중복된 객체 저장도 허용한다. 대표적인 구현 클래스는 아래와 같다.ArrayListLinkedListVectorStack1 - 1. ArrayList가장 널리 사용되는 List의 구현 클래스. 배열 기반 구조로, 인덱스를 통한 빠른 검색이 장점이며, 내부 배열의 크기를 초과하면 자동으로 크기를 늘려준다. 하지만 중간 삽입/삭제 시에는 배열 이동이 필요하므로 느릴 수 있다.1 - 2. LinkedList연결 리스트 자료구조 기반 구조로, 삽입/삭제가 빠르고 검색이 느리다. 각 요소는 이전/다음 요소의 참조 주소를 저장하고..

자바 고급(JAVA) 2026.05.21

JCF의 필요성과 구조 이해

1. 배열의 한계와 컬렉션의 필요성배열 : Java에서 가장 기본적인 자료구조. 간단하고 성능이 빠르지만, 실무에서는 다양한 이유로 배열만 사용하는 것에 부족함을 느낌JCF(Java Collection Framework) : 배열의 단점을 보완하기 위해 등장한 것. 1 - 1) 배열의 한계1) 고정 크기의 한계배열은 한 번 크기를 지정하면 변경이 불가능하다.배열의 크기가 부족하면 새로운 배열을 생성한 뒤 직접 복사해야 한다.현실 세계의 데이터는 수시로 추가되거나 삭제되는 경우가 많다.2) 타입 안정성 문제배열은 기본형 배열 외에도 객체 배열 선언이 가능하다.하지만 object[] 배열로 선언하면 모든 타입이 저장 가능해지며, 이 경우 런타임 타입 오류가 발생할 수 있다.3) 편의 기능 부족배열은 모든 로..

자바 고급(JAVA) 2026.05.20

익명 클래스(Anonymous Class)

1. 익명 클래스란?이름이 없는 클래스로 일회성으로 사용될 클래스를 정의할 때 유용하며, 주로 인터페이스나 추상 클래스의 구현체를 즉석에서 정의할 때 사용된다. 별도의 클래스를 만들지 않고도 간단하게 원하는 동작을 구현할 수 있어, 이벤트 처리나 콜백 처리 등에 자주 활용된다.1-1. 기본 형식인터페이스의 경우인터페이스타입 변수 = new 인터페이스타입() { // 추상 메서드 구현};추상 클래스의 경우추상클래스 변수 = new 추상클래스() { // 추상 메서드 구현};※ Java 8이후, 함수형 인터페이스를 사용하는 경우라면 익명 클래스는 람다식으로 데체할 수 있다.// 변환 예시btn.setOnClickListener(() -> System.out.println("클릭됨"));1-2. 한..

자바 고급(JAVA) 2026.05.18