전체 글 111

프로그래머스 N으로 표현

https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr 풀이 : 동적 계획법 Dynamic Programming ① N이 8개 이상이면 -1을 반환하도록 했으므로, N이 최대 8개일때까지만 계산을 수행 ② N을 0~x개 사용했을 때의 결과값 각각 저장함. - 1) N을 0~x개 만큼 이어붙인 자연수를 저장함. - 2) 1)에서 저장한 케이스를 조합해 사칙연산을 수행 (N*N, N/N, NN*N .... ) N3 = N1 사칙연산 N2 와 N2 사칙연산 N1, NN 사칙연산 N - 3) 2)의 결과에서 number(구하려는 값)이 나오면 연산을 중단하고 N의 갯수를 출력함. [케이스 예시] ① N..

JVM 자바 가상머신

JVM : Java Virtual Machine 바이트 코드인 자바를 해석하고 실행하는 가상의 운영체제 운영체제와 자바 사이의 중간단계 역하을 수행하는 것으로, 개발자는 운영체제를 신경쓰지 않고 자바 프로그램을 개발할 수 있음. JVM의 구성 ① 자바 인터프리터 : 바이트 코드 파일을 읽고 실행 ② 클래스 로더 : 실행 중에 자바를 읽어 클래스를 로딩 ③ JIT컴파일러 : 실행 중에 자바 바이트 코드를 기계어로 번역 ③ 가비지 컬렉터 : 메소드 작동이 끝나면 자동으로 메모리를 회수. (메모리관리) 메모리 사용 영역 [메소드 영역] 클래스 로더로 읽어 클래스별로 런타임 상수풀, 필드, 메소드, 생성자 등을 분류해서 저장하는 데이터 영역 JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역 [힙 영역] ..

JAVA/JAVA 2021.10.02

프로그래머스 단속카메라

https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 풀이 : 탐욕 알고리즘 ① 구간 시작위치가 가장 먼저인 구간부터 차례로 비교하면서 카메라의 설치 구간을 탐색 ② 카메라가 설치된 구간과 route(자동차 통과구간)를 비교하면서 카메라 설치 구간을 줄여나감. ③ 겹치는 구간이 없으면 자동차 통과구간을 카메라 설치구간에 추가함. 구현 JAVA import java.util.*; public int solution(int[][] routes) { //먼저 빠져나가는 거리 순으로 정렬 Arrays.sort(routes, (..

프로그래머스 섬 연결하기

https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 풀이 : 탐욕 알고리즘 / 프림 알고리즘 / 최소신장트리 찾기 참고 : 2021.09.20 - [알고리즘/알고리즘] - 탐욕 알고리즘 Greedy Algorithm 탐욕 알고리즘 Greedy Algorithm 탐욕 알고리즘 현재 상황에서 가장 좋아보이는 답을 선택하는 방법. 상황마다 최적을 선택하면 전체 결과값도 최적이 될것이라는 가정을 전제로 함. ① 각 단계에 도달할 때 마다, 최적의 결과 mantaray.tistory.com class Solution {..

Objects 클래스

Objects 클래스 Object의 유틸리티 클래스 Method Return Type 설명 compare(T o1, T o2, Comparator c) int Comparator(우선순위)를 이용해 두 객체를 비교 deepEquals(Object o1, Object o2) boolean 깊은 비교 : 두 객체의 데이터 값을 비교 equals(Object o1, Object o2) boolean 얕은 비교 : 두 객체의 번지(주소값) 비교 hashCode(Object o) int 객체의 해시코드 hash(Object o) int 입력값으로 배열을 생성하고 해시코드를 생성 isNull(Object o) boolean 객체가 null인지 조사 nonNull(Object o) boolean 객체가 null이 아..

JAVA/JAVA 2021.09.28

Object Class

Object Class 자바의 가장 최상위 클래스 필드 없이 메소드로만 구성되어 있고, 모든 클래스에서 Object 클래스의 메소드를 사용할 수 있음. * 모든 클래스는 Object 클래스를 상속받기 때문 equals() 두 객체가 동일하면 True, 아니면 False를 반환하는 메소드 Object A = new Object(); Object B = new Object(); Object C = A; System.out.println(A.equals(B)); System.out.println(A.equals(C)); false true 두 객체가 같은 값인지를 비교하기 위해 클래스에서 재정의 Override해서 사용할 수 있다. 대표적으로 String클래스의 equals가 있다. [Telephone 클래스..

JAVA/JAVA 2021.09.28

java.lang 패키지

java.lang 자바 프로그램의 기본적인 클래스를 담고 있는 패키지로 import 없이 사용할 수 있음. Class 설명 Object 최상위 클래스 System 표준 입출력, JVM 종료, Garbage Collector 실행 요청 Class 클래스를 메모리로 로딩 String 문자열 저장, 정보 얻기 StringBuffer, StringBuilder 문자열 저장, 조작 Math 더하기, 곱하기, 나머지 구하기 등의 수학 함수 사용 Wrapper Byte, Short, Character, Integer, Float, Double, Boolean, Long 기본 타입 객체, 입력값 검사, 기본 타입으로 변환 java.util Class 설명 Arrays 배열의 복사, 비교, 정렬, 문자열로 변환 등 Ca..

JAVA/JAVA 2021.09.27

프로그래머스 디스크 컨트롤러

https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 우선순위 힙을 이용해 풀이 참조 : https://codevang.tistory.com/316 프로그래머스_힙(Heap)_디스크 컨트롤러 (JAVA) 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입 codevang.tist..

어노테이션 Annotation (@)

어노테이션 컴파일 및 실행 과정에서 코드를 어떻게 컴파일하고 처리할 지를 알려주는 메타데이터 정보 @Annotation 어노테이션의 용도 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공 어노테이션 정의와 사용 어노테이션은 element를 가질 수 있음. element는 타입과 이름으로 구성되어 있고, default값을 가질 수 있음. public @interface AnnotationName{ String elementName1(); String elementName2() default "Manta.Ray"; } public class AnnotationTes..

JAVA/JAVA 2021.09.26