Java(70)
-
[스택] 백준 17298
문제1. 크기가 N인 수열(A) 존재2. 각 원소 A[i]에 관련된 오큰수 NGE[i] 를 구한다3. 오큰수가 존재하지 않는 경우는 , "-1"로 저장( 1 (* 오큰수 : 오른쪽에 큰 수 중 가장 왼쪽에 있는 수 )ex) A [ 3,5,2,7 ] => NGE [ 5,7,7,-1 ]A [ 9,5,4,8 ] => NGE [ -1, 8,8,-1 ] 문제 분석N의 조건이 1,000,000까지 가능하므로 , 일반적인 반복문으로 풀이를 할 경우 시간초과가 난다스택을 이용하여, 풀이 진행스택에 새로 들어오는 수가 top에 존재하는 수보다 크면 그 수 는 오큰수가 된다오큰수 구한 후 수열에서 오큰수가 존재하지 않는 숫자에 -1을 출력ex) A[top] ex) A [ 3,5,2 ,7] // result [ ] // s..
2024.10.30 -
[트러블 슈팅] 로그인 인증 관련 문제
문제로그인을 했을경우, 이미 인증을 받았기에 필터와 인터셉트가 걸러주지 못하는 문제 발견/members/test -> /members/admin (이동 가능) 문제의 코드session의 null 체크만 하고, 로그인 계정에 대한 인증 로직이 추가되지 않음위의 문제가 발생한 원인 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestURI = request.getRequestURI(); Pattern pattern = Pattern.compile("/members/([^/]+)"..
2024.10.29 -
[슬라이딩 윈도우 + deque] 백준 11003번
문제1. 숫자 배열 크기 + 범위 크기가 주어짐2. 숫자 배열이 주어짐3. 숫자배열에서 범위만큼 움직이며, 그때마다 최소값을 저장문제 조건 : ( 1 문제분석범위 크기 이동만큼 최소값 탐색슬라이딩 윈도우 : 2개의 포인터를 잡고, 이동시키며 최소값 탐색범위크기 및 숫자개수 최대치가 5,000,000이므로 시간복잡도를 O(n) 초과하여 잡을 수가 없음 (시간 초과)기본 정렬 시간 복잡도 : O(nlogn)일반적인 정렬알고리즘으로 풀지 못하므로, 덱(deque)을 도입Deque (덱) - 앞쪽에서 추가/삭제 가능, 뒷쪽에서도 추가/삭제 가능[구조] Add -> -> Remove Fr..
2024.10.27 -
[JAVA 기술면접] 라이브러리 활용
java.base 모듈기본으로 가지고 있는 java 모듈종류- java.lang : Java 기본클래스 포함 (Object, String, System ...)- java.util : 컬렉션 프레임워크와 유틸리티 (List, Map, Set)- java.io : 파일 입출력- java.nio : 비동기 입출력, 버퍼 ,채널, 파일경로/복사/이동/삭제 관련- java.net : 네트워크 프로그래밍 지원 모듈- java.security : 보안 및 암호화 관련 클래스- java.math : 대형정수 및 고정 소수점 숫자 다루는 클래스- java.time : 시간 및 날짜관련import java.nio.file.Path;import java.time.LocalDateTime;import java.util.Ar..
2024.10.24 -
[JAVA 기술면접] 예외
예외와 예외클래스Error / ExceptionError에러는 응용프로그램 실행 오류Exception일반예외 ( Check 예외 )ClassNotFoundExceptionInterruptedException런타임예외 (UnCheck 예외)NullPointerExceptionArrayIndexOutOfBoundsExceptionNumberFormatExceptionCheck 예외 : 컴파일 당시에 오류가 발생UnCheck 예외 : 런타임 당시에 오류가 발생 ( 컴파일 단계 이상 없음 ) 예외 처리 코드 예외 처리 문법try ~ catch ~ finally예외 메시지 출력.getMessage().toString().printStackTrace() try{ String data; ..
2024.10.24 -
[JAVA 기술면접] 라이브러리 (라이브러리, 모듈)
라이브러리클래스와 인터페이스를 모아 둔 것을 라이브러리라고 함대개 .jar파일로서 보관하게 된다CLASSPATH에 지정하여, 해당 라이브러리를 사용하게 된다import [패키지명].[클래스명]; 모듈라이브러리 처럼 가져다 사용할 수 있다공개와 은닉이 존재한다module-info.java인 모듈기술자를 정의해야한다[키워드]외부로 노출 : exportsmodule 가져다 쓰기 : requires모듈 선언 및 저장package pack1;public class B{ public void method(){ System.out.println("B"); }}package pack2;public class A{ public void method(){ System.out...
2024.10.24