반응형

전체 글 268

[파이썬, Python] 백준 2960: 에라토스테네스의 체

문제 https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net 코드 n, k = map(int, input().split()) num = list(i for i in range(2, n+1)) del_num = list() while len(del_num) < k: tar = num[0] for i in num: if i % tar == 0: del_num.append(i) num.remove(i) print(del_num[k-1]) 설명 우선 입력값을 받아주고 범위에 맞는 수 리스트를 생성해 주었다. 그리고 지워진 수의 값을 담아줄 리스트..

[파이썬, Python] 백준 10610: 30

문제 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 코드 nums = list(input()) nums.sort(reverse = True) cnt = 0 for i in nums: cnt += int(i) if cnt % 3 != 0 or "0" not in nums: print(-1) else: print(''.join(nums)) 설명 우선 각 수를 리스트로 받아서 저장해 두고 큰 수를 만들기 위해서 역순으로 정렬을 해주자. 30의 배수가..

[파이썬, Python] 백준 3036: 링

문제 https://www.acmicpc.net/problem/3036 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다. www.acmicpc.net 코드 from math import gcd n = int(input()) rings = list(map(int, input().split())) for i in range(1, n): x = gcd(rings[0], rings[i]) print(f'{rings[0] // x}/{rings[i] // x}') 설명 두 수의 최대공약수를 알아내서 최대공약수로 나눈 수를 형식에 맞게 출력하면 되는 문제였다. math에 있는 gcd..

[파이썬, Python] 백준 1094: 막대기

문제 https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net 코드 x = int(input()) sticks = [64] while True: if sum(sticks) > x: stick = min(sticks) // 2 sticks.remove(min(sticks)) if stick + sum(sticks) >= x: sticks.append(stick) else: sticks.append(stick) sticks.append(stick) el..

[파이썬, Python] 백준 1476: 날짜 계산

문제 https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 코드 e, s, m = map(int, input().split()) year = 1 while True: if ((year - e) % 15 == 0) and ((year - s) % 28 == 0) and ((year - m) % 19 == 0): break year += 1 print(year) 설명 간단하게 생각하면 금방 풀 수 있는 문제다. 1년부터 시작해서 연도를 1씩 늘리는데 년도에서..

[파이썬, Python] 백준 2491: 수열

문제 https://www.acmicpc.net/problem/2491 2491번: 수열 0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾 www.acmicpc.net 코드 n = int(input()) num = list(map(int, input().split())) dp1 = [1 for i in range(n)] dp2 = [1 for i in range(n)] for i in range(1, n): if num[i] = num[i-1]: dp2[i] = max(dp2[i], dp2[i-1] + 1) print(max(max(dp1), max(dp2))..

[파이썬, Python] 백준 14916: 거스름돈

문제 https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net 코드 n = int(input()) cnt = 0 while n > 0: if n % 5 == 0: cnt += n // 5 break else: n -= 2 cnt += 1 if n < 0: print(-1) else: print(cnt) 설명 단순하게 5원부터 지급하고 나머지를 2원을 지급하려고 하면 오류가 난다. 거스름돈이 5의 배수여서 딱 나누어 떨어진다면 상관이 없지만 그렇지 않다면 2를 우선 빼주어서 계산을 해야 한다. 2를 빼다가 음수로 넘어가서 n이 음수가 된다면 -1을 출력하고 그렇지 않다면 결..

[파이썬, Python] 백준 10825: 국영수

문제 https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 코드 n = int(input()) score = list() for _ in range(n): s = input().split() score.append(s) score.sort(key = lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0])) for i in score: print(i[0]) 설명 우선 n과 주어진 점수들을 넣을..

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

머리글 깃허브 로그인을 계속 진행해 보자. Github Login 지난 시간 액세스 토큰을 통해 gtihub api url에 fetch를 진행했다. 하지만 user의 정보가 private 상태라면 정보를 얻을 수 없는 문제가 있었는데 이를 해결해 보자. const apiUrl = "https://api.github.com"; const userData = await ( await fetch(`${apiUrl}/user`, { headers: { Authorization: `token ${access_token}`, }, }) ).json(); const emailData = await ( await fetch(`${apiUrl}/user/emails`, { headers: { Authorization: ..

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

머리글 깃허브 로그인 파트를 계속 진행해 보자. Github Login 저번 시간에 유저가 다시 리다이렉트 할 수 있게끔 만들었다. 그 이후에 진행을 알아보자. 우리는 유저의 리다이렉트와 함께 깃허브를 통해 토큰을 받았다. 이 토큰을 Access 토큰으로 변경해 주는 작업이 필요하다. 컨트롤러를 수정해서 작업을 해보자. export const finishGithubLogin = async (req, res) => { const baseUrl = "https://github.com/login/oauth/access_token"; const config = { client_id: process.env.GH_CLIENT, client_secret: process.env.GH_SECRET, code: req.q..

반응형