본문 바로가기

java257

[Programmers] Lv.0 / 왼쪽 오른쪽 / Java 문제 풀이 import java.util.Arrays; class Solution { public String[] solution(String[] str_list) { String[] answer = {}; for(int i = 0; i < str_list.length; i++) { if(str_list[i].equals("l")) { return Arrays.copyOfRange(str_list, 0, i); } else if(str_list[i].equals("r")) { return Arrays.copyOfRange(str_list, i + 1, str_list.length); } } return answer; // return new String[0]; } } 출처 https://school.pr.. 2024. 1. 3.
[Programmers] Lv.0 / 순서 바꾸기 / Java 문제 풀이 import java.util.*; class Solution { public int[] solution(int[] num_list, int n) { int[] first = Arrays.copyOfRange(num_list, n, num_list.length); int[] second = Arrays.copyOfRange(num_list, 0, n); int[] answer = new int[first.length + second.length]; System.arraycopy(first, 0, answer, 0, first.length); System.arraycopy(second, 0, answer, first.length, second.length); return answer; } } i.. 2023. 12. 11.
[Programmers] Lv.0 / n 번째 원소부터 / Java 문제 풀이 import java.util.Arrays; class Solution { public int[] solution(int[] num_list, int n) { int[] answer = new int[num_list.length - n + 1]; answer = Arrays.copyOfRange(num_list, n - 1, num_list.length); return answer; } } import java.util.*; class Solution { public int[] solution(int[] num_list, int n) { int[] answer = Arrays.copyOfRange(num_list, n - 1, num_list.length); return answer; } } .. 2023. 12. 11.
[Programmers] Lv.0 / 배열 조각하기 / Java 문제 풀이 import java.util.*; class Solution { public int[] solution(int[] arr, int[] query) { for(int i =0; i < query.length; i++) { if(i % 2 == 0) { arr = Arrays.copyOfRange(arr, 0, query[i] + 1); } else { arr = Arrays.copyOfRange(arr, query[i], arr.length); } } return arr; } } import java.util.*; class Solution { public int[] solution(int[] arr, int[] query) { int start = 0; int end = arr.length .. 2023. 12. 7.
[Programmers] Lv.0 / 2의 영역 / Java 문제 풀이 import java.util.*; class Solution { public int[] solution(int[] arr) { int[] answer = {}; List idxList = new ArrayList(); for(int i = 0; i < arr.length; i++) { if(arr[i] == 2) { idxList.add(i); } } if(idxList.size() == 0) { return new int[]{-1}; } int startIdx = idxList.get(0); int endIdx = idxList.get(idxList.size() - 1); answer = Arrays.copyOfRange(arr, startIdx, endIdx + 1); return ans.. 2023. 12. 6.
[Programmers] Lv.0 / 첫 번째로 나오는 음수 / Java 문제 풀이 class Solution { public int solution(int[] num_list) { int answer = 0; for(int i = 0; i < num_list.length; i++) { if(num_list[i] < 0) { answer = i; break; } else { answer = -1; } } return answer; } } class Solution { public int solution(int[] num_list) { for (int i = 0; i < num_list.length; i++) { if (num_list[i] < 0) { return i; } } return -1; } } import java.util.stream.IntStream; class .. 2023. 12. 5.
[Java] Annotation 정의 자바 애너테이션(Java Annotation)은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종 보통 @ 기호를 앞에 붙여 사용 JDK 1.5 버전 이상에서 사용 가능 자바 애너테이션은 클래스 파일에 임베디드되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동 종류 표준(내장) 어노테이션 : 자바가 기본적으로 제공해주는 어노테이션 메타 어노테이션 : 어노테이션을 위한 어노테이션 사용자 정의 어노테이션 : 사용자가 직접 정의하는 어노테이션 배경 자바 코드는 변경돼도 설정 파일은 업데이트되지 않는 문제 설정과 코드가 분리되어 있어, 개발에 대한 어려움 ➡️ 어노테이션 통해 하나의 파일에서 코드와 설정 관리 가능해짐 표준 어노테이션 @Override @Deprecated @Suppr.. 2023. 12. 5.
[Java] Exception 예외(Exception) 사용자의 잘못된 조작이나 개발자의 코딩 실수로 인해 발생하는 프로그램 오류 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 동일하나, 예외는 예외 처리를 통해 프로그램을 종료하지 않고 정상 실행 상태 유지시킬 수 있음 종류 일반 예외(Checked Exception) 실행 예외(Unchecked Exception) 개발자가 반드시 직접 예외 처리해야 함 Exception 클래스 자체는 Checked exception 개발자가 직접 예외 처리하지 않아도 됨 명시적 예외 처리가 강제되지 않기에 Unchecked Exception 클래스의 자식 클래스 중 RuntimeException 클래스는 Unchecked 실행 예외(Unchecked Exception)의 종류 Runt.. 2023. 12. 5.
[Java] Enum 정의 Enum이란 Enumeration의 앞 글자로, 열거라는 의미 관련된 상수들의 집합 자바에서는 final 로 String 과 같은 문자열이나 숫자들을 나타내는 기본 자료형의 값 고정 가능 = 이렇게 고정된 값이 상수(constant) 어떤 클래스가 상수만으로 작성되어 있으면 반드시 class 로 선언할 필요는 X 이럴 때 클래스로 선언된 부분에 enum 이라 선언 시, 이 객체는 상수의 집합임을 명시적 표현하는 것 배경 기존에는 인터페이스나 클래스 내에서 상수 선언 후 관리해옴 클래스 내에서 선언 시, 네이밍이 겹치거나 불필요하게 상수가 많아지는 단점 있음 인터페이스로 관리 시 위 단점이 일부 상쇄되나, 여전히 IDE의 적극적 지원 부족 및 타입 안정성이 떨어진다는 단점 있었음➡️ 이를 보완하며 나.. 2023. 12. 5.
[Java] Pass by Value vs. Pass by Reference 메모리 할당 어떤 변수 선언 = 메모리 할당 변수를 선언하기 위해 할당되는 메모리로는 크게 스택과 힙이 있음 스택(Stack) 영역 함수의 호출과 함께 지역 변수 / 매개 변수 등이 할당됨 정렬된 방식으로 메모리 할당 및 해제됨 힙(Heap) 영역 클래스 변수나 인스턴스 변수 / 객체 등이 할당됨 우연하고 무질서하게 메모리 할당됨 ➡️ JVM 은 무질서하게 관리되는 힙 영역을 위주로, GC 통해 메모리 해제 관리함 (인스턴스 변수로 존재하는 원시 변수는 힙 영역에서 관리됨) 원시 변수(Primitive Value)의 메모리 할당 자바에서 변수는 객체가 아닌 실제 값들인 int, double, float boolean 등과 같은 원시 값(Primitive Value)들이 존재 public void test.. 2023. 12. 5.
[Java] 기본 자료형 & 참조 자료형 자료형 종류 기본 자료형(Primitive Type) 참조 자료형(Reference Type) 기본 자료형 자바 컴파일러에 의해 해석되는 자료형 총 8가지의 기본형을 미리 정의 및 제공 사용 전, 반드시 선언(Declared)되어야 함 OS (운영체제)에 따라 자료형 길이 달라지지 않음 비객체 타입이기에 null 값을 가질 수 없음. 만약 기본형에 null 을 넣으려면 Wrapper Class 활용 스택(Stack) 메모리에 저장됨 동적타이핑(Dynamic typing) 정적타이핑(Static typing) 코드 작성 시간 빠름 코드 실행 속도 느림 코드 내용 및 로직 파악 쉬움 속도 중요한 작업에는 다소 부적합 / 작고 단순한 프로젝트에 적합 동적 타이핑 언어 : Python, Ruby, PHP 등 코.. 2023. 12. 5.
[Programmers] Lv.0 / 리스트 자르기 / Java 문제 풀이 import java.util.*; class Solution { public int[] solution(int n, int[] slicer, int[] num_list) { List list = new ArrayList(); int a = slicer[0]; int b = slicer[1]; int c = slicer[2]; if(n == 1) { for(int i = 0; i < b + 1; i++) { list.add(num_list[i]); } } else if(n == 2) { for(int i = a; i< num_list.length; i++) { list.add(num_list[i]); } } else if(n == 3) { for(int i = a; i < b + 1; i++).. 2023. 12. 4.