전체 글
-
3307. 최장 증가 부분 수열알고리즘/SW Expert Academy 2022. 5. 20. 00:01
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWBOKg-a6l0DFAWr SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 해석 어떤 수열의 증가하는 수열의 최대 크기를 찾으면 됩니다. 수열 1 3 2 5 4 정답 : 3 해석 : 1 -> 2 -> 4 또는 1-> 2 -> 5 또는 1 -> 3 -> 5 또는 1 _> 2 -> 4 의 최댓값은 3 수열 4 2 3 1 5 6 정답 : 4 해석 : 2 -> 3 -> 5 -> 6 문제 풀이 전 설계 DP를 활용하여 DP[i]에는 현재 i 값이 마지막으로 오는 최장 부분 수..
-
1263. [S/W 문제해결 응용] 8일차 - 사람 네트워크2알고리즘/SW Expert Academy 2022. 5. 20. 00:01
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV18P2B6Iu8CFAZN SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 해석 네트워크 상에서 한 사용자가 다른 모든 사람에게 얼마나 가까운가를 구합니다. 이를 CC라고 칭하고 해당 값을 가장 작게 가지는 사람을 출력합니다. CC(i) = ∑ j dist(i,j)dist(i, j) 단, dist(i, j)는 노드 i로부터 노드 j까지의 최단 거리이다. 문제 해석 모든 순서쌍에 대하여 최단경로를 구해야 합니다. 다익스트라 or 플로이드 와샬 알고리즘을 사용하면 됩니다..
-
비밀번호를 암호화 하자!프로젝트/게시판 프로젝트 2022. 5. 19. 19:04
기존에는 그저 memberRequestDTO로 받아온 값을 그대로 저장했습니다. memberService.join(memberRequestDTO.toEntity()); 위의 방법은 유저의 비밀번호를 DB에 그대로 저장하게 됩니다. 이렇게 되면 DB를 관리하는 사람들이 유저의 비밀번호를 그대로 볼 수 있기 때문에 보안상으로 취약해집니다. 또한 법적으로도 개인정보에 대해 법률로 정하고 있고, 최소 기준도 제시하고 있습니다. 암호화란? 재화적 가치가 있는 데이터를 알아볼 수 없는 문자로 바꿈으로써 공격의 목적을 파괴하는 보안 솔루션입니다. 간단하게 어떤 정보를 누구도 알아볼 수 없도록 만들어 버립니다. 예를 들어 비밀번호 123456을 암호화해서 저장한다면 DB에는 fs32a3xzz0이 저장됩니다. 암호화는 ..
-
intellij 자동 포맷팅 시 줄 바꿈 처리 적용해주기프로젝트/게시판 프로젝트 2022. 5. 19. 10:08
자동 포맷팅이란? 코드를 정해진 방식대로 자동으로 정렬을 시켜주어 가독성을 높여주는 기능입니다. intellij에서 자동 포맷팅을 적용하는 단축키는 Ctrl + Alt + L입니다. 문제가 발생한 점 빌더 패턴을 사용하게 되면 코드가 길어지는 경우가 있어 자동 포맷팅을 적용을 하였습니다. 하지만 줄 바꿈은 동작하지 않았습니다. 기존의 코드 만약 다음과 같이 된다면 가독성이 훨씬 올라가겠죠? 해결 방법 1. File -> Settings로 이동합니다. ( 단축키 : Ctrl + Alt + S) 2. Code Style으로 검색하여 Java를 클릭합니다. 3. 중간 상단에 있는 Wrapping and Braces를 선택합니다. 4. Chained method calls에서 설정을 변경합니다. Wrap alw..
-
[백준] 5373번 : 큐빙 - 자바(JAVA)알고리즘/백준 2022. 5. 19. 00:01
https://www.acmicpc.net/problem/5373 5373번: 큐빙 각 테스트 케이스에 대해서 큐브를 모두 돌린 후의 윗 면의 색상을 출력한다. 첫 번째 줄에는 뒷 면과 접하는 칸의 색을 출력하고, 두 번째, 세 번째 줄은 순서대로 출력하면 된다. 흰색은 w, 노란 www.acmicpc.net 문제 해석 큐브는 3 x 3 x 3개의 작은 정육면체로 이루어져 있습니다. 퍼즐을 풀려면 각 면에 있는 아홉 개의 작은 정육면체의 색이 동일해야 합니다. 큐브는 각 면을 양방향으로 90도 만큼 돌릴 수 있도록 만들어져 있습니다. 이 문제에서는 큐브가 모두 풀린 상태에서 시작합니다. 윗면은 흰색, 아랫면은 노란색, 앞면은 빨간색, 뒷면은 오렌지색, 왼쪽면은 초록색, 오른쪽 면을 파란색입니다. 큐브를 ..
-
로그인 기능을 만들어보자프로젝트/게시판 프로젝트 2022. 5. 18. 01:23
로그인 기능을 만들기 위해 궁금한 점을 하나씩 해결해보겠습니다. 1. 로그인 방식은 POST일까 GET일까? 로그인은 사용자의 정보를 조회하는 것이니까 GET을 써야 하지 않을까?라고 생각했습니다. 하지만 GET 방식의 경우 입력받은 정보들을 URL 쿼리문으로 보내며 POST 방식은 body로 감싸서 보냅니다. 즉, GET의 경우에는 그대로 노출되고 POST의 경우에는 보안성이 증가됩니다. 로그인의 경우에는 민감한 정보로 보안이 필요하기 때문에 POST를 사용합니다. 하지만 만약 SSL을 사용한다면 GET/ POST둘다 암호화되기 때문에 GET을 사용하면 될 것 같다고 생각했습니다. 하지만 로그인하는 과정을 통해서 토큰 / 세션이 생성된다면 이는 POST가 또 맞다고 볼 수 있습니다. 또한 사용자가 UR..
-
[백준] 2357번 : 최솟값과 최댓값 - 자바(JAVA)알고리즘/백준 2022. 5. 18. 00:01
https://www.acmicpc.net/problem/2357 2357번: 최솟값과 최댓값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100 www.acmicpc.net 문제 해석 N개의 정수들이 존재합니다. (1 ~ 100,000) a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아닙니다. 하지만 이와 같은 a, b의 쌍이 M개 주어졌을 때는 어려운 문제가 됩니다. (1~ 100,000) 여기서 a번째라는 것은 입력되는 순서로 a번째라는 이야기입니다. 예를 들어 a=1, ..
-
TCP연결이 갑자기 끊기면 어떻게 될까? = 유령 세션CS/네트워크 2022. 5. 17. 22:40
TCP와 네트워크에 대해 잘 모르신다면 다음 글을 읽고 오시면 좋습니다. https://junuuu.tistory.com/259 OSI 7계층이란? OSI 7 계층이란?(What) Open System Interconnection의 약자로 간단하게 "서로 다른 제조사 시스템 간의 호환성 해결"을 위해 ISO 국제표준 국가에 의해 재정되었습니다. 네트워크에서 통신이 일어나는 과정 junuuu.tistory.com 유령 세션이란? 서버에 연결된 클라이언트 세션이 제대로 연결해제 되지 않고 남아 있는 상태를 유령 세션이라고 합니다. 접속 해제에 대한 감지가 이루어지지 않았기 때문에 할당된 리소스 등이 해제되지 않고, 재접속 시 문제를 일으킬 수 있습니다. 유령 세션이 발생하는 이유 일반적인 TCP 흐름은 다음..