분류 전체보기

Algorithm/문제

[BOJ/JAVA] 백준 15486번 퇴사2 ( DP )

✔ 문제 난이도 : 골드5 🥇 https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net T : 상담하는데 걸리는 기간 P : 상담 했을 때 받을 수 있는 금액 N이 주어젔을 때 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 상담을 적절히 했을 때, 얻을 수 있는 최대 수익을 구하는 문제입니다. ✔ 문제 풀이 단순하게 1일~N일, 2일~N일... 모든 경우를 계산하게 되면..

Backend/Spring

[Spring Security] 스프링 시큐리티 알아보기, 구조(Filter Chain) 및 인증 과정

🤔 스프링 시큐리티? 스프링 기반의 어플리케이션의 보안(인증과 인가)을 담당하는 프레임워크를 말합니다. 인증(Authentication) 로그인 과정처럼 사용자가 시스템에게 자신을 식별할 수 있는 자격증명(아이디, 비밀번호, 토큰 등)을 제공하고, 시스템이 이를 확인하는 과정을 말합니다. 인가(Authorization) 인증된 사용자가 어떤 리소스에 접근할 수 있는지 또는 어떤 동작을 수행할 수 있는지를 검증하는 것 즉, 접근 권한을 얻는 일을 말합니다. 다양한 보안 기능, 인증 방식, 제어 메커니즘을 지원하여 보다 경력한 보안을 구현할 수 있습니다. 개발자는 이러한 기능을 통해 보안 관련 로직을 작성하지 않아도 된다는 장점이 있습니다. 스프링 시큐리티를 사용하지 않았을 때에는 컨트롤러에서 직접 인증과 ..

Algorithm/문제

[BOJ/JAVA] 백준 14888번 연산자 끼워넣기 ( DFS, 백트래킹, 재귀호출 )

✔ 문제 난이도 : 실버1 🥈 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 주어진 수열과 연사자를 사용하여 최댓값과 최솟값을 구하는 문제입니다. ✔ 문제 풀이 수열과 연산자들의 조합으로 최대값과 최솟값을 구하기 위해서는 모든 경우의 조합을 탐색하여 검사해야 한다고 생각했습니다. 그러기 위해서는 DFS처럼 재귀호출을 통해 주어진 수열과 연산자를 모두 사용한 조합을 우선적으로 구하고(깊..

Algorithm/문제

[BOJ/JAVA] 백준 2504번 괄호의 값 ( 스택 Stack )

✔ 문제 난이도 : 골드5 🥇 https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X www.acmicpc.net 주어진 괄호열에 대해서 올바른 괄호일 때 주어진 조건에 맞게 계산하는 문제입니다. ✔ 문제 풀이 알고리즘 문제를 조금 풀어보았다면 괄호를 보자마자 stack을 떠올릴 수 있을 것입니다. 하나의 괄호는 열고 닫는 괄호로 이루어져 있습니다, 이러한 점을 stack의 LIFO의 특징을 활용하여 괄호에 하나씩 접근할 수 있게 됩니다. ( ( ) [ [ ] ] ) 하지만..

CS

[Java] 자바 가상 머신 JVM이란 무엇일까요?

🤔 JVM이란 무엇일까요? Java Virtual Machine '자바 프로그램을 실행하기 위한 가상 기계(컴퓨터)'라고 할 수 있습니다. 자바는 운영체제에 종속적이지 않다는 특징을 가지고 있습니다. 작성된 자바 소스 코드(.java)는 자바 컴파일러(javac)를 통해 바이트 코드(.class)로 변환됩니다. 이 바이트 코드는 JVM에서 실행되고, JVM은 바이트 코드를 운영체제에 맞는 기계어로 해석하여 실행합니다. 이러한 JVM의 역할을 통해 여러 운영체에서 동일한 방식으로 자바 프로그램을 실행할 수 있습니다. 또한 JVM은 자동 메모리 관리를 제공합니다. 객발자가 객체에 할당된 메모리를 해제하지 않아도 Garbage Collection을 통해 사용되지 않는 객체를 자동으로 제거하여 메모리를 최적화합..

Algorithm/문제

[BOJ/JAVA] 백준 1912번 연속합 ( DP )

✔ 문제 난이도 : 실버2 🥈 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net ✔ 문제 풀이 입력값의 범위가 n(1 ≤ n ≤ 100,000)이기 때문에 단순히 이중 for문을 통해 계산하게 되면 시간초과가 됩니다. 동적 계획법(DP)을 적용하여 시간복잡도를 낮추어 풀어야합니다. 위 문제에서는 '연속되는 몇 개의 수'라는 조건이 주어졌기 때문에 연속되는 수의 누적합을 배열에 저장하여 비교하면서 중복되는 연산을 줄일 수 있습니다. Bottom-Up과 Top..

장용석
'분류 전체보기' 카테고리의 글 목록 (2 Page)