본문 바로가기
반응형

코딩테스트51

파이썬 Python | 백준 | 문제 10818번: 최소, 최대 ⭕ 파이썬 Python | 백준 | 문제 10818번: 최소, 최대➡️ 문제 설명N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오. 입력첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. 출력첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다. 예제 입력 1 520 10 35 30 7 예제 출력 1 7 35 문제 출처문제를 만든 사람: baekjoon데이터를 추가한 사람: lina, topology 알고리즘 분류수학구현 ➡️ 접근 방법 1: 직접 구현첫 번째 접근 방법은 직접 최솟값과.. 2024. 6. 13.
파이썬 Python | 알고리즘 | ⭐⭐⭐⭐ ArrayList ⭕ 파이썬 Python | 알고리즘 | ⭐⭐⭐⭐ ArrayList➡️ ArrayListArrayList는 배열과 유사한 자료 구조입니다. 배열은 데이터가 연속적으로 저장된다는 점에서 ArrayList와 차이가 있지만, 이해를 돕기 위해 배열과 유사하다고 생각할 수 있습니다. 알고리즘 문제에서는 배열의 삽입과 삭제가 빈번히 일어나므로 시간 복잡도와의 싸움이 자주 발생합니다. 따라서 삽입이나 삭제를 시간 복잡도를 고려하지 않고 무작위로 수행하면 문제를 해결하지 못할 수 있습니다.ArrayList의 특징연속된 메모리 공간: ArrayList는 연속된 메모리 공간에 데이터를 저장합니다.원하는 위치의 값 얻기: 특정 위치의 요소에 접근할 때 O(1)의 시간 복잡도를 가집니다.삽입 및 삭제: 중간에 요소를 삽입하거.. 2024. 6. 13.
파이썬 Python | 입력 처리의 모든 것: 정수와 문자열에서 2차원 배열까지 ⭕ 파이썬 Python | 입력 처리의 모든 것: 정수와 문자열에서 2차원 배열까지정수➡️  ⭐ ⭐ ⭐ 한 줄을 입력받기 한 줄에 입력된 여러 값을 정수로 변환하여 변수에 저장하는 방법입니다.# 한 줄을 입력받아 정수로 변환a, b = map(int, input().split())print(a, b) # 예시 입력: 3 5, 출력: 3 5  input(): 사용자로부터 한 줄의 문자열 입력을 받습니다. 예시: "3 5"split(): 입력받은 문자열을 공백을 기준으로 분리하여 리스트로 반환합니다. 예시: ["3", "5"]map(int, ...): split()으로 분리된 문자열 리스트의 각 요소를 정수로 변환합니다. 예시: [3, 5]a, b = ...: 변환된 정수 리스트의 값을 각각 a와 b 변수.. 2024. 6. 12.
파이썬 Python | 알고리즘 | 카카오 개발자 코딩테스트 및 오픈채팅방 알고리즘 ⭕ 파이썬 Python | 알고리즘 | 카카오 개발자 코딩테스트 및 오픈채팅방 알고리즘카카오의 핵심은 카카오톡입니다. 카카오의 신입 공개 채용 코딩 테스트 문제는 대학교 학부 과정에서 배우는 기초 알고리즘에 충실하지만, 문자열 기반 채팅 애플리케이션인 카카오톡은 카카오의 핵심인 만큼 문자열과 관련된 알고리즘이 항상 출제됩니다. ➡️ 2020년 카카오 개발자 신입 공개 채용 1차 1번 오픈채팅방 문제[프로그래머스 문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/42888)문제 설명카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있으며, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있습니다. 신입사원인 김크루.. 2024. 6. 12.
파이썬 Python | 알고리즘 | 시간 복잡도 ⭕ 파이썬 Python | 알고리즘 | 시간 복잡도컴퓨터는 1초에 약 1억 정도의 연산을 할 수 있다고 가정합니다. ➡️ 알고리즘이 왜 필요한가?구글 검색엔진을 예로 들어보겠습니다. 우리가 구글을 통해 검색할 때, 전 세계에서 업로드된 모든 게시물을 검색 키워드와 비교하여 찾으려 한다면 수백 초 이상의 시간이 걸릴 것입니다. 하지만 실제로 구글과 유튜브는 검색창에 키워드를 입력했을 때 빠르면 1초 안에, 느려도 몇 초 안에 검색 결과를 보여줍니다. 이는 효율적인 알고리즘 덕분입니다. 이러한 이유로 대기업에서는 개발자를 채용할 때 알고리즘 시험을 보며, 개발자들에게 있어서 알고리즘은 필수적인 기술입니다. ➡️ 그래서 구글 검색 엔진은?구글의 검색 알고리즘은 비밀에 부쳐져 있지만, 실무적인 개발 이야기로 추.. 2024. 6. 12.
파이썬 Python | 문자열: count 함수 ⭕ 파이썬 Python | 문자열: count 함수파이썬에서 문자열의 count() 함수는 매우 유용한 메서드 중 하나입니다. 이 메서드는 문자열 내에서 특정 문자나 문자열의 등장 횟수를 세어서 그 수를 반환합니다. 이를 통해 데이터 분석이나 텍스트 처리에서 문자의 빈도를 파악할 때 많이 사용됩니다. ➡️ 함수의 구조string.count(x, start, end)x: 찾고자 하는 문자 또는 문자열입니다.start: 검색을 시작할 인덱스입니다 (이 인덱스를 포함).end: 검색을 종료할 인덱스입니다 (이 인덱스는 포함되지 않음). ➡️ 함수의 특징대소문자 구분: 'A'와 'a'는 다르게 취급됩니다.범용성: 단일 문자뿐만 아니라 문자열도 검색 가능합니다.범위 지정: start와 end를 설정하지 않으면 기.. 2024. 4. 21.
파이썬 Python | 알고리즘 | Greedy algorithm(그리디 알고리즘, 탐욕법) ⭕ 파이썬 Python | 알고리즘 | Greedy algorithm(그리디 알고리즘, 탐욕법) 현재 상황에서 가장 좋아 보이는 선택을 연속적으로 하여 최종적인 해결책에 도달하는 방식 문제를 해결하기 위해 순간마다 가장 최선의 선택을 해나가며, 각 단계에서의 선택이 그 이후의 선택들에게 제약을 주지 않는 방향으로 진행되어야 함 정당성 분석: 반드시 그 선택이 실제로 최적해에 도달할 수 있다는 것을 증명하는 정당성 분석이 필요함 ➡️ 조건 탐욕스러운 선택 조건(Greedy Choice Property): 우리가 한 선택이 다음 선택과 나머지 문제 해결에 영향을 주지 않고, 그 선택이 최종적으로 최적의 해결책을 가져다 줄 수 있다는 것 최적 부분 구조 조건(Optimal Substructure): 큰 문제를.. 2024. 3. 9.
파이썬 Python | 알고리즘 | Coding Test 준비 ⭕ 파이썬 Python | 알고리즘 | Coding Test 준비 문제 해결 역량(알고리즘 및 자료구조)에 관한 학습 기록 레퍼지토리 자주 사용하는 알고리즘 코드를 라이브러리화 ➡️ 사용 언어 변경: Java에서 Python으로 2024년 03월 06일부터 Python을 주 사용 언어로 전환함 다양한 프로그래밍 언어에 대한 학습 욕구 특히, Python은 풍부한 라이브러리 지원으로 알고리즘 학습에 집중하기 용이(예시, 문자열 처리가 다른 언어에 비해 간결하고 쉬움) 따라서, 다양한 상황에 능동적이고 쉽게 대응 가능 ⭕ 학습 계획 ➡️ 알고리즘 개념 학습 학습 내용: 그리디, 구현, DFS, BFS, 정렬, 이진 탐색, 다이나믹 프로그래밍, 최단 경로, 그래프 이론 등 학습 자료: 나동빈님의 YouTube.. 2024. 3. 9.
자바 Java | 알고리즘 | 배열 ⭕ 자바 Java | 알고리즘 | 배열 배열은 동일한 자료형의 데이터를 일렬로 나열한 자료구조입니다. 각 요소는 인덱스를 통해 접근할 수 있습니다. 배열은 프로그래밍에서 매우 일반적으로 사용되며, 메모리 상에서 연속된 공간에 요소를 저장합니다. ➡️ 배열의 특징 인덱스를 사용하여 값에 바로 접근할 수 있다: 배열은 각 요소마다 고유한 인덱스가 있으므로, 해당 인덱스를 사용하여 배열 내의 요소에 직접 접근할 수 있습니다. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다: 배열의 특정 위치에 새로운 값을 삽입하거나 삭제하려면, 해당 위치 이후의 모든 요소를 이동시켜야 합니다. 이는 성능상의 문제를 유발할 수 있습니다. 배열의 크기는 선언할 때 지정할 수 있으며, 변경할 수 없다: 배열을 선언.. 2024. 3. 6.
자바 Java | 알고리즘 | 자료구조(Data Structure) - 배열(Array) 리스트(List) ⭕ 자바 Java | 알고리즘 | 자료구조(Data Structure) - 배열(Array) 리스(List) 두 가지 주요 자료구조인 배열과 리스트는 각각의 특징에 따라 적절한 상황에서 선택되어 사용됩니다. ➡️ 배열(Array) 배열은 연속된 메모리 공간에 값을 저장하는 자료구조입니다. 각 원소는 고유한 인덱스를 가지고 있어 해당 인덱스를 통해 직접 참조할 수 있습니다. int[] numbers = {1, 3, 5, 7, 9}; 배열의 특징 인덱스를 통한 직접 접근: 배열은 각 원소가 고유한 인덱스를 가지므로, 해당 인덱스를 사용하여 빠르게 값을 접근할 수 있습니다. 값의 삽입 및 삭제 어려움: 새로운 값을 삽입하거나 삭제할 때 주변의 값을 이동시켜야 하므로 연산이 복잡합니다. 예를 들어, 두 번째 값.. 2024. 1. 10.
자바 Java | 알고리즘 | 디버깅 ⭕ 자바 Java | 알고리즘 | 디버깅 디버깅은 프로그래밍 과정에서 코드의 논리 오류를 찾아내고 수정하는 중요한 단계입니다. 모든 프로그래머는 실수를 할 수 있으며, 이러한 실수는 코드의 논리 오류로 나타날 수 있습니다. 특히 자바와 같은 언어에서는 디버깅이 더욱 중요한데, 여기에는 몇 가지 핵심적인 이유가 있습니다. 첫째로, 코드 작성 시 실수는 불가피합니다. 논리적인 오류는 문법적인 오류와 달리 컴파일러가 감지하지 못하므로 실행 중에 발견되어야 합니다. 그리고 디버깅을 통해 이러한 오류를 찾아내고 수정할 수 있습니다. 둘째로, 많은 프로그래머들은 문법을 배우는 과정에서 디버깅을 가볍게 여기곤 합니다. 그러나 실제로는 디버깅이 코드 작성 과정에서 필수적인 스킬이며, 특히 코딩테스트를 응시할 때 디버깅.. 2024. 1. 9.
자바 Java | 알고리즘 | 시간복잡도 ⭕ 시간복잡도 시간 복잡도는 알고리즘 선택의 주된 기준 중 하나로, 주어진 문제를 해결하는 데 필요한 연산 횟수를 나타냅니다. 코딩테스트에서는 1억 번의 연산을 1초로 가정하며, 주어진 시간제한 내에 문제를 해결할 수 있어야 합니다. 시간제한이 2초인 경우 최대 2억 번의 연산 안에 답을 도출해야 합니다. ➡️ 시간 복잡도 유형 시간 복잡도는 주로 빅오(O), 빅세타(Θ), 빅오메가(Ω) 세 가지 유형으로 나뉩니다. 빅오(O): 알고리즘의 최악의 경우 시간 복잡도를 나타냅니다. 이는 주어진 입력 데이터에 대해 알고리즘이 최대로 소요될 수 있는 시간을 표현합니다. 코딩테스트에서는 주로 빅오를 고려하여야 합니다. 특히 TEST SET이 복잡하게 나오는 상황에서는 항상 최악의 경우를 염두에 두고 알고리즘을 선.. 2024. 1. 8.
자바 Java | 접근제어자: 객체 지향 프로그래밍의 캡슐화 원칙과 예시 코드 ✅ 접근제어자 Access Modifiers 클래스, 변수, 메서드의 접근 범위를 제한하기 위하여 사용한다. 접근제어자는 객체 지향 프로그래밍의 캡슐화 Encapsulation 원칙을 구현한다. 💡 private 접근제어자 같은 클래스에서만 접근 가능하다. 다른 클래스에서 private 멤버에 접근하려면 public 메서드를 통해 접근한다. 객체 생성 후, 멤버 변수에 접근 가능하다. 객체 생성 후, 메서드를 호출하려면 같은 클래스에서만 접근 가능하다. 클래스 내부에서만 사용한다. class MyClass { private int myPrivateVar; private void myPrivateMethod() { System.out.println("Private method"); } } 💡 default.. 2023. 3. 7.
자바 Java | import문 사용법과 단축키 ✅ import문 다른 패키지의 클래스를 사용하려면 사용하려는 클래스명을 작성하는 과정을 가진다. import문을 사용한다면 클래스명에서 패키지명을 생략할 수 있다. import문은 컴파일러에게 클래스의 패키지에 대한 정보를 제공한다. 💡 import문 사용 파일의 맨 위에 작성한다. import문을 사용하여 가져온 클래스와 선언한 변수나 메서드의 이름이 중복되는 경우, 클래스명 앞에 패키지명을 붙여 구분한다. 모든 패키지와 클래스를 가져오는 import java.lang.*; 문장은 자동으로 삽입되므로 생략 가능하다. 여러 개의 클래스가 사용될 때, '*'를 사용하여 지정된 패키지에 속하는 모든 클래스를 사용할 수 있다. '*'를 사용한다고 하여 성능상의 차이가 있는 것은 아니다. import 패키지명.. 2023. 3. 7.
자바 Java | 패키지(Package)의 개념과 활용 방법 ✅ 패키지 Package 클래스, 인터페이스, 열거형 등을 논리적으로 그룹화한다. 디렉터리와 유사한 개념으로, 서브 패키지를 포함할 수 있다. 서로 다른 패키지에서 동일한 이름을 가진 클래스를 사용할 수 있다. 이름 공간(namespace)을 제공하여 클래스 이름 충돌을 방지한다. 접근 제한자를 활용하여 클래스나 변수에 대한 접근 권한을 설정할 수 있다. 💡 패키지 Package 선언 클래스 파일의 import문 보다 먼저, 첫 줄에 선언한다. 점(.)으로 구분된 계층 구조로 작성한다. 패키지명 대소문자를 모두 허용하지만 주로 소문자를 사용한다. 일반적으로 회사 도메인을 역순으로 사용한다. 길이는 제한이 없다. 클래스 파일의 상단에 package 예약어를 사용하여 패키지를 선언한다. package 패키지.. 2023. 3. 7.
자바 Java | 상속(Inheritance) 개념과 구현 방법: 단일 상속, 상속 구현, super, Object 클래스 ✅ 상속 Inheritance 기존 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 코드의 재사용성을 높이고 코드의 중복을 제거하여, 생산성과 유지보수에 크게 기여한다. 💡 조상 Parent, Super / 자손 Sub 클래스 조상 클래스(Parent, Super class): 상속하는 클래스 자손 클래스(Sub class): 상속받는 클래스 조상 클래스는 자손 클래스의 멤버(필드, 메서드)를 사용할 수 없다. 자손 클래스는 조상 클래스의 모든 멤버(필드, 메서드)를 상속받는다. 자손 클래스는 조상 클래스의 모든 멤버(필드, 메서드)를 사용할 수 있다. 자손 클래스는 조상 클래스의 멤버(필드, 메서드)를 재정의하여 새로운 동작을 구현하는 오버라이딩(Overriding)을 할 수 있다. 자손 클래스는.. 2023. 2. 16.
자바 Java | 생성자(Constructor) 개념: 객체 초기화의 핵심, this() 키워드, 생성자 간 호출 방법 ✅ 생성자 Constructor 객체를 생성할 때 호출되어 인스턴스(Instance) 변수의 초기화를 담당하는 메서드이다. 생성자를 이용하여 객체를 생성하고, 다양한 형태의 생성자를 정의하여 사용한다. 클래스와 같은 이름을 가진다. 반환 타입이 없다. 인스턴스 변수를 초기화하기 위한 매개변수를 가질 수 있다. 객체를 생성할 때 반드시 호출된다. 생성자를 사용하여 객체를 생성할 때는 new 연산자를 사용하며, 객체 생성과 동시에 생성자가 호출된다. 생성자는 클래스 내에 여러 개 정의할 수 있으며, 매개변수의 개수나 타입에 따라 다른 생성자로 인식한다. 💡 생성자 조건 클래스와 같은 이름을 가져야 한다. 반환 타입이 없어야 한다. 객체 생성 시 반드시 호출되어야 한다. 클래스이름(타입 변수명, 타입 변수명,.. 2023. 2. 16.
자바 Java | 다형성(Polymorphism) 핵심: 오버로딩(Overloading)과 출력 다양성 ✅ 오버로딩 Overloading 같은 이름의 메서드를 여러 개 정의한다. 메서드의 이름은 같지만, 매개변수의 개수, 타입, 순서가 다르기 때문에 컴파일러는 각각의 메서드를 다른 메서드로 인식하여 처리한다. 오버로딩을 사용하면 메서드 이름을 다양하게 사용하지 않고도 같은 기능을 하는 여러 개의 메서드를 선언할 수 있다. 오버로딩된 메서드를 호출할 때는 전달하는 인자의 타입, 개수, 순서에 따라 알맞은 메서드가 선택되어 호출된다. 이를 매개변수의 다형성(Polymorphism)이라고 한다. 💡 다형성 Polymorphism 객체지향 프로그래밍에서 하나의 메서드나 클래스가 여러 개의 다른 동작을 수행할 수 있는 능력이다. 즉, 같은 코드에서 다양한 형태로 동작할 수 있다. 오버로딩(Overloading) 같.. 2023. 2. 16.
자바 Java | 호출 스택(Call Stack) 구조와 원리: 메서드 실행 과정의 이해 ✅ 호출 스택 Call Stack 메서드 호출의 실행 순서를 추적하는 자료구조이다. 메인 메서드(main method)가 호출되면, 메서드의 스택 프레임이 호출 스택에 쌓인다. 메인 메서드 내에서 다른 메서드를 호출하면, 해당 메서드의 스택 프레임이 호출 스택의 맨 위에 쌓인다. 호출된 메서드 내에서 다른 메서드를 호출하면, 해당 메서드의 스택 프레임도 호출 스택의 맨 위에 쌓인다. 호출된 메서드가 실행을 완료하고 반환(return)할 때, 해당 메서드의 스택 프레임을 호출 스택에서 제거한다. 호출된 메서드 내에서 예외가 발생하면, 해당 예외를 처리하기 위해 호출 스택을 따라서 예외 처리 구문으로 이동한다. 호출 스택에 있는 메서드들은 LIFO(Last-In-First-Out) 방식으로 처리되어, 호출 .. 2023. 2. 16.
자바 Java | 객체지향 프로그래밍(OOP)의 핵심 개념: 객체, 클래스, 메소드, 참조 변수에 대한 이해와 활용 방법 ✅ 객체지향언어(Object-Oriented Programming Language) 객체지향언어는 프로그램을 객체의 집합으로 구성하는 개념을 기반으로 한다. 코드를 모듈화 하고 각 객체들의 역할과 책임을 분리하여 코드의 재사용성과 관리성을 향상한다. Java: 객체지향 프로그래밍 언어로, 안정성, 이식성, 보안성 등이 뛰어나며, JVM을 이용하여 운영체제나 하드웨어와 독립적으로 실행 가능한 바이트 코드를 생성한다. C++: C 언어에 객체지향 프로그래밍 기능을 추가한 언어로, 시스템 프로그래밍, 임베디드 시스템, 게임 등에 사용한다. Python: 간결하고 읽기 쉬운 문법으로 인기 있는 동적 타이핑 언어로, 객체지향 프로그래밍뿐만 아니라 다양한 프로그래밍 패러다임을 지원한다. 💡 객체지향언어의 주요 특징.. 2023. 2. 16.
자바 Java | 문자열 다루기: String 클래스와 커맨드 라인 인자 사용 방법 ✅ String 클래스 Java에서 문자열을 다루기 위해 제공되는 클래스이다. 문자열을 다루기 위한 다양한 기능과 메서드를 제공한다. String 클래스의 인스턴스는 불변(immutable) 객체이다. String 클래스는 내부적으로 char 배열을 사용하여 문자열을 저장한다. 하지만 한 번 생성된 문자열은 내부적으로 변경될 수 없다. 문자열의 안정성을 보장하고, 문자열을 공유하는 다른 객체들과의 상호작용에서도 예기치 않은 동작을 방지한다. 문자열 조작이 많은 경우에는 StringBuilder나 StringBuffer 클래스를 사용한다. 💡 String 클래스의 메서드 length(): 문자열의 길이를 반환한다. String str = "Hello, world!"; int len = str.length(.. 2023. 2. 16.
자바 Java | 배열(Array) 다루기: 선언, 생성, 접근, Arrays 클래스 활용 ✅ 배열 Array 같은 타입의 여러 변수들을 하나의 묶음으로 다루는 자료구조이다. 배열을 사용하면 많은 양의 데이터를 쉽게 다룰 수 있으며, 여러 개의 변수를 선언하지 않아도 되기 때문에 코드의 가독성을 향상한다. Java에서 배열은 객체(Object)로 취급된다. 배열 변수는 배열의 시작 주소를 참조하며, 배열 요소에 접근하려면 배열 변수와 인덱스를 사용하여 접근한다. 💡 배열 선언 배열 선언은 배열을 생성하기 전에 해당 배열을 다루기 위한 참조 변수를 선언하는 과정이다. 데이터 타입 다음에 대괄호([])를 작성한다. 배열의 이름은 변수 이름과 같은 규칙을 따른다. 배열의 이름은 해당 배열을 다루기 위한 참조 변수의 이름으로 사용한다. 참조 변수는 해당 배열의 데이터 타입과 일치해야 한다. 데이터_타.. 2023. 2. 15.
자바 Java | break문과 continue문: 사용 방법과 주의할 점 ✅ break 문 제어문에서 사용되며, 자신이 포함된 가장 가까운 반복문(for, while, do-while)을 벗어나는 역할을 한다. 무한 루프: break문을 사용할 때 무한 루프를 방지하기 위해 조건문과 함께 사용한다. 그렇지 않으면 반복문이 끝나지 않고 무한 루프에 빠질 수 있다. 중첩된 반복문: 중첩된 반복문에서 break문을 사용할 때는 바깥쪽 반복문을 종료하려는 경우에만 사용한다. 안쪽 반복문을 종료하려는 경우에는 labeled break문을 사용한다. 코드 가독성: break문을 남발하면 코드의 가독성을 저하시킨다. break문이 필요한 경우에만 사용하고, 그렇지 않은 경우에는 다른 방법을 고려한다. 예외 처리: 예외 처리를 하는 경우에는 break문 대신 예외를 사용한다. 예외를 던지면.. 2023. 2. 15.
자바 Java | 비교 연산자: 대소 비교, 등가 비교, 문자열 비교 ✅ 비교 연산자 두 개의 피연산자를 비교하여 결과를 true 혹은 false로 반환한다. 비교 연산자는 주로 조건문(if-else, switch-case)과 반복문(for, while, do-while)에서 사용한다. 두 피연산자의 자료형이 다른 경우, 자동 형변환이 발생한다. 자동 형변환은 자료형의 범위가 작은 쪽에서 큰 쪽으로 형 변환된다. 동 형변환에 의해 예상치 못한 결과를 가져올 수 있으므로, 자료형을 명시적으로 일치시킨다. 💡 대소 비교 두 개의 피연산자의 값을 비교하여, 결과에 따라 true나 false를 반환한다. 기본 숫자형 변수(int, double, float, char, byte, short, long)에서 사용한다. 참조형 변수는 직접 값을 가지지 않기 때문에 대소 비교 연산자를 .. 2023. 2. 15.
자바 Java | 나머지 연산자 %: 음수 계산 규칙, 예외 처리 방법 ✅ 나머지 연산자 % 두 개의 피연산자를 받아 첫 번째 피연산자를 두 번째 피연산자로 나눈 나머지 값을 반환한다. 모든 기본형 숫자 타입(int, long, float, double, short, byte)에서 % 연산자를 지원한다. int remainder = dividend % divisor; int dividend = 7; int divisor = 3; int remainder = dividend % divisor; // remainder는 1이다. 조건문에서 홀수와 짝수를 구분하는 데 사용한다. int input = 5; if (input % 2 == 0) { System.out.println("짝수입니다."); } else { System.out.println("홀수입니다."); } 어떤 수가 .. 2023. 2. 15.
자바 Java | 자료형, 기본형 Primitive Type, 참조형 Reference Type, 형변환 | 매개변수, 논리형, 문자형, 정수형, 실수형 ✅ 기본형 Primitive Type 기본형 변수는 실제 값 data을 저장한다. 기본형의 종류와 크기는 반드시 알아두어야 한다. 논리형 boolean: 1 byte, true와 false 두 가지 값만 표현한다. 문자형 char: 2 byte, 유니코드를 사용한다. 정수형 byte: 1 byte short: 2 byte int: 4 byte, 정수형 기본 long: 8 byte 실수형 float: 4 byte double: 8 byte, 실수형 기본 💡 기본형 매개변수 Read Only 메소드를 호출할 때, 매개변수로 지정한 값을 메소드의 매개변수에 복사하여 넘긴다. 매개변수의 타입이 기본형 일 때, 기본형 값이 복사된다. 메소드의 매개변수를 기본형으로 선언하면, 단순히 저장된 값을 얻는다. d.x의 .. 2023. 2. 15.
자바 Java | 변수 Variable, 상수 Constant | 타입 변환 charAt(0), Integer.parseInt(), Double.parseDouble() | int, long, float, double, char, String ✅ 변수 Variable 변수 Variable는 하나의 값을 저장하는 공간이다. 변수가 필요하다면, 변수를 선언한다. 변수를 선언할 때, 변수의 타입을 선택한다. 💡 숫자 int: 정수 integer를 저장하기 위한 타입 long: 정수 integer를 저장하기 위한 타입, 20억 이상 float: 실수 floating point number를 저장하기 위한 타입, 7자리 double: 실수 floating point number를 저장하기 위한 타입, 15자리 문자 character을 숫자로 변환: '0'을 뺀다. '3' - '0' 문자열 string을 숫자로 변환: Integer.parseInt(), Double.parseDouble()을 사용한다. Integer.parseInt("127") Doub.. 2023. 2. 15.
자바 Java | 화면에 글자 출력하기 | print(), println(), printf() ✅ 출력 화면에 글자를 출력할 때는 print(), println(), printf()을 사용한다. 괄호() 안에 출력하고자 하는 내용을 넣는다. 💡 System.out.print(); 괄호 안의 내용을 출력하고, 줄 바꿈을 하지 않는다. 💡 System.out.println(); 괄호 안의 내용을 출력하고, 줄 바꿈을 한다. class Ex2_1 { public static void main(String args[]) { System.out.println("Hello, world");// 화면에 Hello, world를 출력하고, 줄바꿈을 한다. System.out.print("Hello"); // 화면에 Hello를 출력하고, 줄바꿈을 하지 않는다. System.out.println("World");.. 2023. 2. 15.
자바 Java | 이클립스 Eclipse 단축키 모음, println 단축키 sysout | import 자동 추가, 자동 들여 쓰기, 저장, 실행 ✅ 이클립스 Eclipse 이클립스는 프로그램을 더 빠르고 편리하게 개발할 수 있는 단축키 기능을 제공한다. ✅ 단축키 리스트 💡 자주 사용하는 단축키 전체 선택: ctrl + A 찾기 / 바꾸기: ctrl + F 검색: ctrl + H 저장: ctrl + S 실행: ctrl + F11 import문 자동 추가: ctrl + shift + O 자동 완성: ctrl + space 자동 들여 쓰기: ctrl + i 자동 형식 맞추기: ctrl + shift + F 💡 삭제 단축키 한 줄 삭제: ctrl + D 다음 단어 삭제: ctrl + delete 이전 단어 삭제: ctrl + backspace 💡 이동 단축키 행으로 이동: ctrl + L 소스 탭 간 이동: ctrl + pgup, ctrl + pgdn.. 2023. 2. 15.
자바 JAVA | java.lang.module.findexception 에러 해결 방법 | 간단한 방법, 프로젝트 생성 ✅ java.lang.module.findexception 에러 해결 방법 💡 모듈 module 에러 발생 자바 프로그램을 실행하고 다음과 같은 오류가 발생하였다. Error occurred during initialization of boot layer java.lang.module.FindException: Error reading module: C:\Users\@@@\eclipse-workspace\Exam\bin Caused by: java.lang.module.InvalidModuleDescriptorException: Hello.class found in top-level directory (unnamed package not allowed in module) 모듈 module을 읽는데 에러가.. 2023. 2. 14.
반응형