개인공부43 [Python] 소프티어 : 거리 합 구하기 https://softeer.ai/practice/info.do?idx=1&eid=635&sw_prbl_sbms_sn=157103 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 💡 문제 풀이 그래프 탐색 문제이다. 해결하지 못했다. ✔️ 느낀 점 보자마자 플로이드-워샬이 생각나서 접근했지만 시간초과로 실패 (O(n^3)), DFS로 접근했는데 중간 계산 로직을 구현하지 못해서 실패, 다익스트라로 접근했는데 개선된 버전을 사용해도 시간초과로 실패 (O(E^2logE)) DFS가 두 번 들어가면 풀린다고 하는데 솔직히 좋은 문제인지는 잘 모르겠다. 💻 코드 import sys input = sys.stdin.readline INF = int(1e9) n = int(inp.. 2023. 2. 20. [Python] 백준 1446번 : 지름길 https://www.acmicpc.net/problem/1446 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하인 양의 정수이고, D는 10,000보다 작거나 같은 자연수이다. 다음 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이 www.acmicpc.net 💡 문제 풀이 다익스트라 문제이다. 그리디로도 풀 수 있을 것 같다. 다익스트라 알고리즘을 구현할 줄 알고, 알고리즘을 적용할 노드를 어떻게 설정할지 고민해야 한다. 일반적인 문제와 다르게 특정 노드가 주어지지 않아 고속도로의 길이만큼 노드가 주어졌다고 생각해야 한다. ✔️ 느낀 점 오랜만에 다익스트라 문제를 풀어보기 위해서 쉬운 문제로 갔는데 생각보다 쉽게 접근이 되지 않았다. 파이썬.. 2023. 1. 31. [Python] 프로그래머스 : 게임 맵 최단거리 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 가벼운 BFS 문제이다. 최단거리를 따져야 하므로 생각할 것이 많다. 나는 이동할 수 있는 위치에 이동했을 때 최솟값을 넣어주는 방식으로 구현했다. 그리고 상대의 위치는 항상 끝에 있으므로 따로 계산안하고 넘겨주었다. ✔️ 느낀 점 오랜만에 시작한 알고리즘이라서 파이썬 문법에 익숙하지 못하다는게 느껴졌다. 문법에 대한 기억을 되살리는 것이 좋아보이고 새로운 것을 공부하기보단 공부한 것.. 2023. 1. 29. TIL : Random VS SecureRandom (19) 🛠️ Random과 SecureRandom 난수 생성을 위해서 보통 Random을 사용하는데, SecureRandom을 권장하더라! 왜 그럴까? 🤔 Random 우선 Random은 난수를 만들기 위해 사용하는데, 정말 무작위 숫자를 만들지 않고 의사 난수를 생성한다. 의사 난수란? 무작위의 숫자처럼 보이는 규칙적으로 만들어진 숫자이다. Random을 조금 써본 사람이라면 같은 seed라면 같은 값이 나오는 것을 알고 있을 것이다! 이게 바로 의사 난수라서 그렇다. 😮 SecureRandom 이름에서부터 느껴지듯이 보안성이 더 좋을 것만 같다. 그렇다면 정확하게 어떤 점이 다를까? 1️⃣ 크기 Random은 48 비트까지 지원하지만 SecureRandom은 128 비트까지 지원한다! 같은 값이 나올 확률이.. 2022. 12. 20. TIL : JWT, Access Token / Refresh Token (16) 🔐 JWT JWT란? Json Web Token의 약자로 인증에 필요한 정보를 암호화시킨 JSON 토큰이다. JSON 데이터를 Base64 URL-safe Encode로 인코딩하였고, 토큰 내부에 위조 방지를 위한 전자서명도 들어있다. 🧷 구조 (Header.Payload.Signature) Header : 타입과 해시 알고리즘(ex. HMAC SHA256, RSA)의 종류를 담고 있다. Payload : 사용자 권한, 정보 등을 담고 있다. Key-Value로 이루어진 정보를 Claim이라고 한다. Signature : 헤더에서 정해진 알고리즘과 비밀키를 사용해서 암호화한 인증을 위한 데이터이다. 🧐 왜 JWT를 사용할까? Base64를 통해서 암호화한다는 것을 알기 때문에 누구나 Payload를 쉽게.. 2022. 11. 30. Today I Learned : MarkDown? (1) 사실 이건 테스트입니당 오늘부터 마크다운으로 글을 작성할겁니당 ㅎㅎ 이렇게 하면 인용이래요 와우~ 이거는요 순서가 있는 리스트 이거는 순서가 없는 리스트에요..!! print('사실 오늘 코드블럭도 이쁘게 수정했어요') print('이걸 읽으실 분은 없겠쬬..?') print('md으로 하루하루 공부한 것을 작성해 보아요!') 신기한거 너무 많다~ 어라 근데 왜 줄이 안바뀌죠..? 아 이렇게 하는거구나 ㅎㅎ 줄 맨 끝에 공백 두번입니당 ^.^ 2022. 6. 22. 이전 1 2 3 4 5 6 ··· 8 다음