본문 바로가기

전체 글151

[JAVA] 백준 쉬운 계단 수 10844 (다이나믹 프로그래밍) https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 위 노트를 보면서 간단하게 설명해보겠습니다. 만약 길이가 a 이고 마지막 숫자가 b 인 수가 있습니다. 다음숫자인 c는 어떤 숫자가 와야할까요? c 는 b가 9보다 작다면 b+1이 와야하고 b가 0보다 크다면 b-1이 올 수 있습니다. 예를 들어, b=8인경우를 생각해보겠습니다. 그러면 다음에 올 수 있는 숫자는 7과 9입니다. b=0인 경우를 생각하면 다음에 올 수 있는 숫자는 1 밖에 없습니다. b=9인 경우는 다음에 올 수 있는 숫자는 8 밖에 없습니다. 위 내용을 바탕으로 점화식을 세워 볼겁니다. 먼저 .. 2022. 3. 18.
[JAVA] 2021 카카오문제 - 메뉴 리뉴얼 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 💡 개요 문제는 보고 오셨다고 생각하고 바로 풀이 하겠습니다. dfs 재귀를 통한 완전탐색 하셔도 되지만 저는 비트마스킹을 통한 완전탐색을 선택했습니다. 그 이유는 단어의 특징때문입니다. 하나의 주문에 들어가는 메뉴는 중복되는 알파벳이 없다는 점 때문입니다. 알파벳은 아래처럼 각각 하나의 숫자에 대응됩니다. 'A' - 1 'B' - 1 2022. 3. 15.
Flutter 퀴즈앱 만들기 - 입문 (for MAC) (2) 구현하기 원활한 진행을 위해서 pubspec.yaml을 파일을 동일하게 맞춰주겠습니다. 아래의 코드를 모두 복사하여 pubspec.yaml 파일에 복사하여주세요. pubspec.yaml name: flutter_complete_guide description: A new Flutter project. # The following line prevents the package from being accidentally published to # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev # The follow.. 2022. 3. 13.
[JAVA] 백준 K번째 최단경로 찾기 1854 (다익스트라) 만약 다익스트라 알고리즘이 어떤거였는지 다시 상기해보려면 아래 링크 참고해주시기 바랍니다. 이번 문제는 다익스트라 개념을 응용한 쉽지 않은 문제였습니다. 메모리 제한과 더불어 속도제약이 까다로웠습니다. https://onejunu.tistory.com/87 [JAVA] 백준 최단 경로 1753 ( 다익스트라 알고리즘) www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는.. onejunu.tistory.com 그래도 다익스트라에 대해 간단히 언급해보겠습니다. 우선순위 큐를 이용한 다익스트라 알고리즘을 설명하기 .. 2022. 3. 12.
Flutter 퀴즈앱 만들기 - 입문 (for MAC) (1) 개발환경테스트 플러터는 Dart 라는 언어 하나로 IOS,Android,Web 을 개발할수 있는 UI 프레임워크 입니다. 얼마나 편하게 개발할 수 있는지 Udemy 강의 하나 들어보면서 Flutter 퀴즈앱을 만들어보고 찍먹(?)만 해보려고 합니다. 💡 개발환경 설정 https://docs.flutter.dev/get-started/install Install Install Flutter and get started. Downloads available for Windows, macOS, Linux, and Chrome OS operating systems. docs.flutter.dev 위 공식 사이트에서 플러터의 설치에 관한 내용을 볼 수 있으며 Editor는 안드로이드스튜디오를 쓰라고 되어있으나 저는 좀 더 가볍.. 2022. 3. 11.
JWT + Spring Security 를 이용한 로그인 고찰 - 2 https://onejunu.tistory.com/137 JWT + Spring Security 를 이용한 로그인 고찰 - 1 https://spring.io/guides/topicals/spring-security-architecture Spring Security Architecture this topical is designed to be read and comprehended in under an hour, it provides broad coverage of a top.. onejunu.tistory.com 1편에 이어서 이어가도록 하겠습니다. 인증과 관련된 부품들을 다 만들었기때문에 동작하도록 하는 service 와 controller를 만들어보겠습니다. 여기서 헷갈리면 안되는 부분중 하나가 .. 2022. 3. 1.
JWT + Spring Security 를 이용한 로그인 고찰 - 1 https://spring.io/guides/topicals/spring-security-architecture Spring Security Architecture this topical is designed to be read and comprehended in under an hour, it provides broad coverage of a topic that is possibly nuanced or requires deeper understanding than you would get from a getting started guide spring.io 위 공식사이트와 블로그의 글들을 참고하여 코드를 재작성해보고 커스터마이징하여 어떤 원리로 돌아가는지 구체적으로 분석해본 글입니다. 목표는 전체적인.. 2022. 2. 26.
[12] HTTP : cache-control - 캐시 캐시는 느린 사용자 경험때문에 조금더 빠른 사용자 경험을 위해 탄생한 개념이다. 만약 클라이언트에서 변경되지 않은 리소스에 대해 서버로 계속 요청한다면 네트워크를 통해서 요청할때마다 데이터를 다운로드 받게된다. 인터넷 네트워크는 비싸고 느리며 브라우저 로딩속도또한 느리기 때문에 비효율적이다. 따라서 변하지 않은 리소스를 미리 브라우저 캐시에 저장해두고 빠르게 로딩하여 사용자 경험을 개선한다. 1) 클라이언트는 서버에 메세지를 보낸다. GET /star.jpg 2) 서버는 응답 메세지를 보낸다. HTTP/1.1 200 OK Content-Type: image/jpeg cache-control: max-age=3600 content-length: 34012 ... max-age=3600 은 3600.. 2021. 3. 29.
[11] HTTP 쿠키 HTTP 는 Stateless 프로토콜이다. 그래서 클라이언트와 서버가 요청을 주고 받고 나면 더 이상 연결을 유지하지 않는다. 그리고 이전 요청에 대해 서버는 기억하지 않는다. 그래서 Login 서비스와 같이 이전상태를 기억해야하는 서비스는 HTTP 프로토콜을 이용할때 한계가 있다. 그래서 등장한 것이 쿠키다. - 쿠키 동작 방식 1) 클라이언트가 서버에게 요청을 보냄 POST /login HTTP/1.1 id=abc&password=1234 2) 서버는 HTTP 메세지 Set-Cookie 에 다음과 같은 정보를 포함 시켜서 클라이언트에게 보냄 HTTP/1.1 200 OK Set-Cookie: sessionId=abcde1234; expires=Sat,26-Dec-2020 00:00:00 GMT; pa.. 2021. 3. 29.