전체 글 188

알고리즘 문제풀이 3-5

문제 1 / 여행가의등산-목표 : N X N 크기의 보드에서 (1,1)에서 (N,N)까지 이동하여 최소한의 체력 소모로 도착하는 최단 경로를 찾는 프로그램을 구현   문제 풀이 최종 코드import java.util.*;class Solution { public int solution(int N, int[][] arr) { int[][] energy = new int[N][N]; for (int[] row : energy) Arrays.fill(row, Integer.MAX_VALUE); int[] dx = {-1, 1, 0, 0}; int[] dy = {0, 0, -1, 1}; PriorityQueue pq = new PriorityQ..

코딩테스트 2025.03.21

JWT

JWT란?-Json Web Token, 서버와 클라이언트 사이 통신에서 사용되는 Json형태의 웹 토큰  >서버의 확장성이 높고, 특정 db 나 서버에 의존하지 않아도 됨 JWT의 구성-헤터, 페이로드, 서명으로 구성되어 있다. JWT 인증 방식-사용자가 로그인하면 서버에느 JWT 값을 반환함-전송된 JWT가 주로 로컬스토리지나 쿠키에 저장함-이후 서버로 요청할 떄에 클라이언트에서 Header에 담아서 보냄(Athorization)-토큰을 받은 서버는 서명을 확인하고 내용을 파싱해서 데이터를 사용함-이후 추가적으로 토큰이 만료된다면 refrash token을 이용해서 새로운 토큰 발급 JWT와 다른 인증 방식 비교 - 세션항목세션/쿠키 기반 인증JWT 인증상태 관리상태 유지(서버가 세션 데이터를 관리)무..

개발/spring boot 2025.03.21

알고리즘 문제풀이 3-4

문제 1 / 회전방어-목표 : N초 동안 최적의 행동을 함으로써 만들 수 있는, 차감되는 점수의 합의 최솟값을 반환하는 프로그램 구 문제 풀이 최종 코드import java.util.Arrays;class Solution { public int solution(int N, int[][] enemies) { int answer = 0; int[][] dp = new int[N][4]; for (int d = 0; d 문제 2 / 기사 배치하기-목표 : 기사들이 최적의 경로를 찾아 이동하면서 최대한의 점수를 구하는 프로그램 구현 문제 풀이반복문을 이용하여 최댓값과 최소값을 구한 뒤 차를 반환하였다. 최종 코드 문제 3 / 소수 판별-목표 : 자연수 형태의 A 와 B..

코딩테스트 2025.03.20

알고리즘 문제풀이 3-3

문제 1 / 격차-목표 : 게임을 플레이한 N명의 학생들의 점수 중 가장 큰 점수와 가장 작은 점수의 차이를 반환하는 프로그램 구햔 문제 풀이반복문을 이용하여 최댓값과 최소값을 구한 뒤 차를 반환하였다. 최종 코드class Solution { public int solution(int N, int[] scores) { int answer = 0; int max_score = Integer.MIN_VALUE; int min_score = Integer.MAX_VALUE; for(int i=0; i max_score){ max_score = scores[i]; } if(scores[i] ..

코딩테스트 2025.03.19

알고리즘 문제풀이 3-2

문제 1 / 제로 카드 게임-목표 : 카드 더미에서 뽑은 N개의 카드에 적힌 수를 모은 카드 배열 정수 cards를 이용해서 만들 수 있는 가장 작은 패널티를 구하는 프로그램 구현 문제 풀이dp를 이용하여 부분합을 찾고, target과 가장 가까운 bestSum을 선택하여 풀이하였다. 최종 코드import java.util.*;class Solution { public int solution(int N, int[] cards) { int answer = 0; int totalSum = Arrays.stream(cards).sum(); int target = totalSum / 2; boolean[] dp = new boolean[target + 1]..

코딩테스트 2025.03.18

알고리즘 문제풀이 3-2

문제 1 / 제로 카드 게임-목표 : 카드 더미에서 뽑은 N개의 카드에 적힌 수를 모은 카드 배열 정수 cards를 이용해서 만들 수 있는 가장 작은 패널티를 구하는 프로그램 구현 문제 풀이dp를 이용하여 부분합을 찾고, target과 가장 가까운 bestSum을 선택하여 풀이하였다. 최종 코드import java.util.*;class Solution { public int solution(int N, int[] cards) { int answer = 0; int totalSum = Arrays.stream(cards).sum(); int target = totalSum / 2; boolean[] dp = new boolean[target + 1]..

코딩테스트 2025.03.18

알고리즘 문제풀이 3-1

문제 1 / 제로 카페의 비결-목표 : 주문을 처리하기 위해 사용되는 원두의 양을 구하는 프로그램 구현 문제 풀이큐(Queue)를 이용해여 순차적으로 원두를 사용하고 반복문을 통해 주문처리를 하여 산도를 증가하게 만들었다.산도가 10을 넘으면 새로운 원두를 사용하고, 주문을 처리할 수 없으면 -1을 반환한다. 최종 코드import java.util.*;class Solution { public int solution(int n_coffee, int[] beans, int[] orders) { int answer = 0; Queue beanQueue = new LinkedList(); for(int bean : beans){ beanQueue...

코딩테스트 2025.03.18

선형 자료 구조 - 큐

큐-선입선출 자료구조 : 먼저 들어온 데이터가 먼저 나가는 구조-입력 순서대로 데이터 처리가 필요할 때 사용 : 프린터 출력 대기열, BFS등 큐 기본 구조-선입선출 구조를 따름-기본적으로 데이터 추가, 꺼내기, 큐 공가 확인 동작으로 이루어짐 큐 기본 연산-데이터 추가 : 큐에 데이터 추가-데이터 꺼내기 : 큐에 데이터 꺼내기 실습 진행 queue.add()를 사용하여 데이터 삽입public class Main { public static void main(String[] args) { Queue queue = new LinkedList(); queue.add(1); queue.add(2); queue.add(3); queue.add(..

카테고리 없음 2025.03.14

알고리즘 문제풀이 2-4

문제 1 / BitXorCondition-목표 : n개의 이진수가 담긴 배열을 모두 xor연산을 하여 십진수로 변환하는 알고리즘 구현 문제 풀이XOR 연산-Integer.parseInt()을 통해 xor연산을 수행 최종 코드class Solution { public int solution(String[] arr) { int answer = 0; int result = Integer.parseInt(arr[0], 2); for(int i = 1; i 문제 2 / CountDivisor-목표 : 자연수 n의 양의 약수의 개수를 출력하는 프로그램 구현하기 사용한 알고리즘 시간복잡도 문제 풀이-n보다 작은 i의 제곱근을 검사하면서 약수의 갯수를 찾는다. 최종 코드cla..

코딩테스트 2025.03.13

스택

스택-후입선출 자료구조-데이터가 입력된 순서의 역순으로 처리되어야 할 때 사용 스택의 기본 구조-데이터 추가(push) / 데이터 꺼내기(pop)-기본적으로 데이터 추가, 꺼내기, 스택 공간 확인 동작으로 이루어짐스택 사용 방법-push를 이용해 데이터를 삽입-pop을 사용해서 데이터를 삭제public class Main { public static void main(String[] args) { Stack stack = new Stack(); stack.push(1); stack.push(2); stack.push(3); stack.push(4); stack.push(5); System.out.println(s..

카테고리 없음 2025.03.13