본문 바로가기

전체 글

(258)
프로그래머스) 달리기 경주 https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(players, callings): answer = [] dic = {} for i in range(len(players)): dic[players[i]] = i for i in range(len(callings)): idx = dic[callings[i]] temp = dic[callings[i]] dic[callings[i]] = dic[players[idx - 1]]..
React) 구글 로그인 - @react-oauth/google npm install jwt-decode 최근 구글 로그인을 적용할 순간이 와서 여지없이 reat-google-login 라이브러리를 적용하려했다. 그러나 3월을 마지막으로 더이상 지원을 하지 않는다 해서 다른 방법을 찾아야 했다. 공식문서를 보며 하나하나 코드를 적용하면 되겠지만, 나는 무척 귀찮았다. 그래서 구글링을 했고 대부분의 react-google-login 대신 @react-oauth/google라이브러리를 찾았다. 구글에 널려있는 react-google-login 라이브러리 설명 블로그 와는 다르게 @react-oauth/google라이브러리는 이를 다룬 블로그가 거의 없었기에 직접 포스팅하기로 생각했다. 우선 설치해야 할 라이브러리리는 두개다. npm i @react-oauth/google..
프로그래머스) 공원 산책 https://school.programmers.co.kr/learn/courses/30/lessons/172928 def solution(park, routes): answer = [0,0] for i in range(len(park)): idx = park[i].find('S') if idx != -1: answer[0] = i answer[1] = idx break for i in range(len(routes)): direction, count = routes[i].split(' ') Wall = False count = int(count) position = answer[:] Wall = False for j in range(count): if direction == 'N': if (0
프로그래머스)바탕화면 정리 https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(wallpaper): answer = [] top = 99 left = 99 bottom = -1 right = -1 for i in range(len(wallpaper)): for j in range(len(wallpaper[i])): if wallpaper[i][j] == '#': if top > i: top = i if left > j: left = j if bott..
프로그래머스) 카드뭉치 https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(cards1, cards2, goal): answer = '' isTrue = True for i in range(len(goal)): string = goal[i] c1 = '' c2 = '' if cards1: c1 = cards1[0] if cards2: c2 = cards2[0] if c1 == string: cards1.pop(0) elif c2 == string..
알림 당분간 포트폴리오 작성으로 좀 바쁠 예정. 알고리즘은 될 수 있는 한 1일 1문제 이상을 고수하겠음
프로그래머스)덧칠하기 https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n, m, section): answer = 1 number = section[0] + m - 1 for i in range(1,len(section)): if section[i]
백준)양 https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net from collections import deque col,row = map(int,input().split()) arr = [] for i in range(col): a = str(input()) a = list(a) arr.append(a) visit = [[False]*row for _ in range(col)] dx = [1,-1,0,0] dy = [0,0,1,-1] w,s ..
백준)1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net a = int(input()) dp = [0] * (a + 1) for i in range(2,a+1): dp[i] = dp[i-1] + 1 if i % 2 ==0: dp[i] = min(dp[i], dp[i // 2] + 1) if i % 3 == 0: dp[i] = min(dp[i], dp[i // 3] + 1) print(dp[a]) DP문제이다. 처음엔 dp인 것을 알았으나 도무지 풀 방법이 떠오르지 않아 그리디로 풀어보려했다. 그러나 여느 dp문제가 그렇듯이 이 문제 또한 그리디로 풀 수가 없다. 한 ..
백준)정수 삼각형 https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net a = int(input()) arr = [] for i in range(a): arr.append(list(map(int,input().split()))) for i in range(1,len(arr)): for j in range(len(arr[i])): left = 0 right = 0 if j - 1 >= 0: left = arr[i-1][j-1] + arr[i][j] if len(arr[i -1]) > j: right = arr[i-1][j] + arr[i][..
백준)모둔 순열 https://www.acmicpc.net/problem/10974 from itertools import permutations a = int(input()) arr = [i for i in range(1,a+1)] for i in permutations(arr,len(arr)): for j in i: print(j,end=' ') print()
백준)차이를 최대로 https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net from itertools import permutations n = int(input()) arr = list(map(int,input().split())) count = 0 z = [] answer = 0 for array in permutations(arr,len(arr)): count = 0 for i in range(len(arr) - 1): count += abs(array[i] - array[i+1..
백준)날짜 계산 (브루트포스) https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net arr = list(map(int,input().split())) count = 1 while max(arr) > 1: arr[0] -= 1 arr[1] -= 1 arr[2] -= 1 if arr[0] == 0: arr[0] = 15 if arr[1] == 0: arr[1] = 28 if arr[2] == 0: arr[2] = 19 count += 1 print(count) 전형적인 브루트포스 문제이다..
프로그래머스)[1차] 뉴스 클러스팅 https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import Counter def solution(str1, str2): answer = 0 arr1 = [] arr2 = [] for i in range(0,len(str1)-1): if str1[i].isalpha() and str1[i+1].isalpha(): arr1.append(str1[i].lower()+str1[i+1].lower()) # print(st..
프로그래머스)이진 변환 반복하기 https://school.programmers.co.kr/learn/courses/30/lessons/70129 def solution(s): answer = [0,0] while True: if s == '1' or s == 1: break count = s.count('0') s = s.replace('0','') answer[1] += count answer[0] += 1 s = str(bin(len(s)))[2:] return answer 단계는 2단계짜리 문제이지만 구현문제치곤 매우 쉬워서 1.5단계 정도로 생각한다.