본문 바로가기

분류 전체보기121

[백준 2195번] 문자열 복사 문제 풀이 모든 경우를 확인하기 위해서 시작 인덱스와 끝인덱스를 설정해서, 시작 인덱스부터 끝 인덱스까지의 문자열이 P문자열에 있을 경우 끝 인덱스를 늘려주고, 더이상 문자열이 같지 않다면 결과값(copy의 횟수)을 하나 올려준 후, 시작 인덱스의 위치를 끝 인덱스 다음의 위치로 배치해주었다. 이전에 풀었던 그리디 문제와 비슷해서 이러한 흐름으로 문제를 푸는 것은 어렵지 않았으나, 구현하는 부분에서 애를 먹었다. s = input() p = input() result = 0 start, end = 0,0 #시작 인덱스와 끝 인덱스 초기화 while True: if start == len(p): #p 문자열 탐색이 끝난 경우 break for i in range(l.. 2023. 9. 24.
<Step 3> OAuth2.0 Client 🎶 OAuth2.0 Client 개요 OAuth 2.0 인가 프레임워크의 역할 중 인가 서버 및 리소스 서버와의 통신을 담당하는 클라이언트의 기능을 필터 기반으로 구현한 모듈 간단한 설정만으로 OAuth 2.0 인증 및 리소스 접근 권한, 인가 서버 엔드 포인트 통신 등의 구현이 가능하며 커스터마이징의 확징이 용이하다. ✔ OAuth 2.0 Login 어플리케이션의 사용자를 외부 OAuth 2.0 Provider나 OpenID Connect 1.0 Provider 계정으로 로그인 할 수 있는 기능을 제공한다. 글로벌 서비스 프로바이더인 "구글 계정으로 로그인", "깃허브 계정으로 로그인" 기능을 OAuth 2.0 로그인을 구현해 사용할 수 있도록 지원한다. OAuth 2.0 인가 프레임워크의 권한 부여 .. 2023. 9. 19.
[백준 4386번] 별자리 만들기 문제 풀이 (with Python) 크루스칼 알고리즘과 MST(최소 신장 트리) 알고리즘을 이용했다. 별자리들의 좌표를 입력받고, 그 별자리들 중 두개씩 골라 두 별사이의 거리를 계산해서 저장한다. 두 별사이의 거리가 작은 순으로 정렬한 후, 두 별의 루트 노드가 다르면 연결해준다. import sys import math input = sys.stdin.readline def find(a): # 루트 노드 찾기 if a == parent[a]: return a parent[a] = find(parent[a]) return parent[a] def union(a, b): # 두 노드 합치기 a = find(a) b = find(b) if a .. 2023. 9. 18.
[백준 2887번 ] 행성 터널 문제 풀이 (with Python) 입출력은 동일하나, 메모리 초과가 뜬다. N이 100,000인데 128MB이므로 info의 메모리를 줄여야한다. import sys input = sys.stdin.readline def find(a): # 루트 노드 찾기 if a == parent[a]: return a parent[a] = find(parent[a]) return parent[a] def union(a,b): a = find(a) b = find(b) if a < b: parent[b] = a else: parent[a] = b N = int(input()) arr = [] info = [] result = 0 parent = [i for i in range(N)] for _ in .. 2023. 9. 17.