본문 바로가기

java4

[ 백준 - 2529 ] 부등호 난이도 : S1Link  :https://www.acmicpc.net/problem/2529Tag : BFS 문제 탐색하기 - 부등호 k개의 방향에 맞게 k+1 자리의 정수를 선택하여 문자열을 만들면됨.- 선택된 문자열의 숫자값이 최대 최소 값을 출력해야한다.- 숫자는 중복해서 선택할 수 없다.시도 1 (실패)시간복잡도부등호 k개의 최대 개수는 9개이므로 숫자를 선택해서 넣을 수 있는 경우의 수는 9!  = 362880모든 경우의 수를 계산하여도 시간내에 충분하고 실제로는 중간에 넣을 수 없는 숫자일 경우 바로 종료하면 되기 때문에 계산해야할 경우의 수가 더 적을것으로 기대됩니다. 선택 알고리즘모든 경우의 수를 탐색할 것이고, 매번 실행시 남아있는 숫자들중에 선택하면 되기 때문에 탐색, 그중에서 DFS를.. 2025. 4. 10.
Java 기술 면접 준비 1. JVM이란 뭘까요?Java Virtual Machine으로 Java 바이트 코드를 실행하기 위한 환경을 제공합니다. 이러한 JVM덕분에 java는 운영체제와 하드웨어로부터 독립적인 실행환경을 제공할 수 있습니다.Java언어로 먼저 소스코드를 작성한 후에 컴파일러를 통해 .java 파일을 컴파일하여 바이트코드로 변환되어. JVM이란 뭘까요?Java Virtual Machine으로 Java 바이트 코드를 실행하기 위한 환경을 제공합니다. 이러한 JVM덕분에 java는 운영체제와 하드웨어로부터 독립적인 실행환경을 제공할 수 있습니다. Java언어로 먼저 소스코드를 작성한 후에 컴파일러를 통해 .java 파일을 컴파일하여 바이트코드로 변환되어 .class파일을 생성합니다. 이런 .class파일들을 jvm이.. 2025. 4. 10.
Refactoring - MapStruct 적용 서론☁️기존에 DDD의 4Laeyerd 형태를 띄고있는 구조였습니다.명확히 4개의 레이어로 구분하여 수정시에 다른 레이터에게 영향을 미치기 않도록 하는것이 목표인 구조입니다. 하지만 아직 구조적으로 미흡한 부분 중 하나는 Application과 Presenetation이 하나의 dto를 공유한다는 것이었습니다.presentation 영역의 DTO를 어플리케이션 레이어에 그대로 전달하여 사용하고 잇습니다.즉, 어플리케이션 레이어에서 프레젠테이션 영역에 의존하고 있는 형태이고, 이렇게 되면 DIP 원칙에 어긋납니다.그렇기 때문에 서비스는 서비스 영역의  dto로만 사용을 해야하며, presentation 에서는 presentation 영역에 맞는 dto로 변경해서 사용해야합니다. 이렇게 명확히 분리할 경우 .. 2025. 4. 2.
Deque구현체 LinkedList VS ArrayDeque 비교 💬서론java에서 제공하는 java.util.Stack 클래스는 디자인이 잘못되어 사용을 지양하고 있습니다.이유를 짧게 정리하자면 자바의 Stack 클래스는 상위 클래스로 Vector를 상속받는데, 여기서 문제가 발생합니다. - Synchronized로 인한 성능 저하 발생Vector는 모든 메서드에 synchronized를 사용하기 때문에 간단하게 조회만 하는 경우에도 동기화로 인해 성능 저하가 발생합니다. Stack에서 제공하는 메서드 역시 synchronized를 사용해서 동기화 처리하는데, 내부적으로 Vector가 제공하는 메서드를 사용함으로써 이중으로 동기화 처리가 발생하여 성능 저하가 발생합니다. - 후입 선출 구조 위반스택은 후입선출 구조이기 때문에 해당 구조의 규칙을 위반하는 접근은 불가.. 2025. 1. 2.