반응형

전체 글 268

[파이썬, Python] 백준 2644: 촌수계산

문제 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**7) n = int(input()) a, b = map(int, input().split()) m = int(input()) graph = [[] for _ in range(n+1)] visited = [False] * (n+1) res = list() for _ in range(m): x, y = m..

[JavaScript, Node.js] 유튜브 클론 정리 7장 (8) - Github Login1

머리글 이번 시간에는 깃허브 로그인을 구현해 보자. Github Login 우선 흐름을 간단히 살펴보자. 우선 사용자를 깃허브(로그인하려 하는 사이트)로 보낸다. 그러면 사용자는 해당 사이트에 로그인을 한다. 우리의 사이트에 대한 정보 접근 권한을 승인하고 깃허브는 우리에게 사용자를 돌려보낸다. 이 단계에서 token을 같이 redirect 해준다. 이 token을 통해 사용자의 정보를 받아올 수 있다. 우선 기본적으로 설정을 진행해 보자. 깃허브의 세팅으로 들어가 준다. 그리고 목록의 Developer settings에 들어가 준다. 그리고 OAuth Apps를 클릭하자. 그리고 New OAuth App을 클릭하면 다음과 같이 뜬다. 이름은 아무거나 넣어주고, URL은 'http://localhost:..

[파이썬, Python] 백준 11931: 수 정렬하기 4

문제 https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) nums = list() for i in range(n): num = int(input()) nums.append(num) for i in sorted(nums, reverse = True): print(i) 설명 n을 입력받아준다. 숫자를 담을 리스트도 생성해 준다. n의..

[파이썬, Python] 백준 1789: 수들의 합

문제 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 코드 n = int(input()) cnt = 0 res = 0 while True: cnt += 1 res += cnt if res > n: break print(cnt - 1) 설명 문제를 이해하는데 애를 먹었다. 서로 다른 N개의 자연수의 합이 S라고 한다 = 최대한 많은 자연수를 이용해서 만들 수 있어야 한다. 이렇게 이해를 하면 조금 더 쉽지 않을까 싶다. 예를 들어 S가 10이라면 1,2,3,4를 사용해서 만들 수 있다. S가 11이라면 역시 1,2,3,4 만을 이용해서 만들 수 있다. S가 15가..

[파이썬, Python] 백준 11724: 연결 요소의 개수

문제 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(10**7) cnt = 0 n, m = map(int, input().split()) graph = [[] for _ in range(n+1)] visited = [False] * (n+1) for _ in range(..

[파이썬, Python] 백준 1302: 베스트셀러

문제 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 코드 n = int(input()) book = dict() for i in range(n): title = input() if title not in book: book[title] = 0 book[title] += 1 book = sorted(book.items(), key = lambda x: (-x[1],x[0])) print(book[0][0]) 설명 우선 딕셔너리를 이용해서..

[파이썬, Python] 백준 18258: 큐2

문제 https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 from collections import deque import sys input = sys.stdin.readline n = int(input()) q = deque([]) for _ in range(n): order = input().split() if order[0] == 'push': q.append(order[1]) elif order[0] == 'p..

[파이썬, Python] 백준 2003: 수들의 합 2

문제 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) num = list(map(int, input().split())) cnt = 0 inter_sum = 0 end = 0 for start in range(n): while inter_sum < m and end < n:..

[JavaScript, Node.js] 유튜브 클론 정리 7장 (7) - Cookie, Env File

머리글 이번 시간에는 쿠키에 대해 조금 더 자세히 알아보고 env 파일에 대해서도 알아보자. Cookie 쿠키에는 다양한 프로퍼티가 존재한다. 우선 Secret이다. secret는 우리가 쿠키에 사인할 때 사용하는 string이다. 쿠키에 사인을 하는 이유는 backend가 쿠키를 줬다는 것을 보여주기 위함이다. 또한 session hijack이라는 공격 방지를 위함이다. 따라서 Secret는 길고 강력하고 무작위성을 지녀야 한다. 다음은 Domain이다. domain은 말 그대로 이 쿠키를 만든 backend가 누구인지 알려준다. 우리가 인터넷 사이트를 도메인이라고 하는 것과 같은 이치다. 쿠키는 domain에 있는 백엔드로만 전송된다. 예를 들어 지금 우리 사이트의 domain은 localhost 이..

[파이썬, Python] 백준 2822: 점수 계산

문제 https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 코드 li = [] idx = [] ans = 0 for i in range(8): li.append(int(input())) for i in range(5): idx.append(li.index(max(li)) + 1) ans += li[li.index(max(li))] li[li.index(max(li))] = -1 idx.sort() print(ans) for i in idx: ..

반응형