성장일기

내가 보려고 정리하는 공부기록

전체 글 171

[백준] 12865: 평범한 배낭 (1/0 Knapsack problem, DP) - JAVA

class 4https://www.acmicpc.net/problem/12865    # 문제이 문제는 아주 평범한 배낭에 관한 문제이다.한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다.준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 여행을 하기 위해 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 알려주자.  # 예제입력 : 첫 줄에 물품의..

[백준] 9251: LCS (이차원 배열을 이용한 DP) - JAVA

class 4https://www.acmicpc.net/problem/9251    # 문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. # 예제 입력 :  첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다.ACAYKPCAPCAK 출력 4  # 필요개념 문제를 보고 dp를 사용해야겠다는 생각을 했지만, 점화식을 어떻게 세워야 할지 계속 고민이 되었다. 1차원 배열을 이용해 점화식을 세우고, 문제를 푸는 것은 익숙하지만 그 외의 방법은 익숙..

[시큐리티] RSA, JWT 기본개념 정리

스프링 시큐리티를 공부하기 앞서 보안과 관련된 개념을 정리하고자 한다. 목차는 다음과 같다.RSA 암호화공개키와 개인키JWT에 대하여RFC?JWT 구  데이터를 전달할 때 발생하는 보안이슈를 해결하기 위해선 기밀성, 무결성, 가용성이 필요하고, 이를 위해서는 열쇠전달문제, 보낸사람 신뢰 문제를 해결해야 한다. 위같은 문제를 해결하기 위해 RSA 암호화를 한다! 1. RSA 암호화RSA 암호화는 공개키 암호 방식 중 하나로, 암호화 뿐만 아니라 전자서명이 가능한 최초의 알고리즘이다. 이를 개발한 연구자들의 이름 앞글자를 따서 RSA가 되었다. 방식RSA는 두 개의 키인 공개키와 개인키를 이용한다. 이때, 공개키는 누구에게나 공개해도 괜찮은 키로 메시지를 암호화할 때 사용되고, 이때 암호화 된 문서는 개인키..

[백준] 1916: 최소비용 구하기 (다익스트라 알고리즘) - JAVA

class 4https://www.acmicpc.net/problem/1916    # 문제N개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 M개의 버스가 있다. 우리는 A번째 도시에서 B번째 도시까지 가는데 드는 버스 비용을 최소화 시키려고 한다. A번째 도시에서 B번째 도시까지 가는데 드는 최소비용을 출력하여라. 도시의 번호는 1부터 N까지이다. # 예제입력 : 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 그리고 그 다음에는 도착지의 도시 번호가 주어지고 또 그 버스..

[백준] 1629: 곱셈 (재귀, 모듈러성질) - JAVA

class4https://www.acmicpc.net/problem/1629    # 문제자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오. # 예제입력 :  첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.10 11 12 출력 :  첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다.4 # 필요개념문제를 봤을 때 간단한데 ? 생각했다가 제한시간이 0.5초인 것을 보고 쉽진 않겠다는 생각을 했다. 단순히 Math.pow() 함수를 사용하면 시간초과가 발생한다. pow를 사용하면 최악의 경우 n = 21억이 되므로 O(n) 시간복..

[백준] 9935: 문자열 폭발 (Stack) - JAVA

class 4https://www.acmicpc.net/problem/9935    # 문제상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다.폭발은 다음과 같은 과정으로 진행된다.문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다.새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다.폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다.상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보려고 한다. 남아있는 문자가 없는 경우가 있다. 이때는 "FRULA"를 출력한다.폭발 문자열은 같은 문자를 두 개 이상 포함하지 않는다.  # ..

[백준] 14500: 테트로미노 (DFS, dydx) - JAVA

class3++ https://www.acmicpc.net/problem/14500   # 문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다.정사각형은 서로 겹치면 안 된다.도형은 모두 연결되어 있어야 한다.정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다.정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다.아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다.테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하시오.테..

[백준] 7662: 이중 우선순위 큐 (PriorityQueue) - JAVA

class 3++ https://www.acmicpc.net/problem/7662   # 문제이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제하는 점이다. 이중 우선순위 큐를 위해선 두 가지 연산이 사용되는데, 하나는 데이터를 삽입하는 연산이고 다른 하나는 데이터를 삭제하는 연산이다. 데이터를 삭제하는 연산은 또 두 가지로 구분되는데 하나는 우선순위가 가장 높은 것을 삭제하기 위한 것이고 다른 하나는 우선순위가 가장 낮은 것을 삭제하기 위한 것이다.정수만 저장하는 이중 우선순..

[Spring MVC] 4. REQUEST와 RESPONSE에 관하여 (HttpServletRequest, HttpServletResponse..) - (2) Response

인프런 김영한 강사님의 스프링MVC 강의를 듣고 학습한 내용을 정리한 게시물입니다.https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의 | 김영한 - 인프런김영한 | 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습www.inflearn.com  지난 게시물에 정리한 request에 이어, 이번에는 response에 대해 정리하려고 한다. 아래는 request 정리 게시글이다.https://wanna-developer02.tistory...

[Spring MVC] 4. REQUEST와 RESPONSE에 관하여 (HttpServletRequest, HttpServletResponse..) - (1) Request

인프런 김영한 강사님의 스프링MVC 강의를 듣고 학습한 내용을 정리한 게시물입니다.https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의 | 김영한 - 인프런김영한 | 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습www.inflearn.com 예전에 서블릿에 대해 간단하게 다루었던 적이 있는데, 자세히는 정리하지 않은 거 같아 정리해보려고 한다. 1. 서블릿서블릿은 간단하게 말하면 http 요청과 응답을 단순화해주는 프로그램이다.  사..

728x90