본문 바로가기

전체 글

(146)
[싱커톤 시즌 3 회고록] 싱크트리 - FINSET 싱크트리란? 노코드 블록 툴이다. 간단하게 블록을 맞추는 형태로 되어있고 은근 지원하는 기능이 많아서 간편하게 백엔드를 구축할 수 있었다. 참가 이유 학교에서 동기들과 함께 스터디를 진행하던 도중 싱커톤을 발견하게 됐고 다양한 증권사의 API를 무료로 사용해 볼 수 있어서 참가를 했다. 팀 구성 우리팀은 안타깝게도 Frontend 개발자로만 구성이 되어있었다.. 근데 백엔드를 해보고 싶어서 싱크트리를 다뤄보게 되었다. 대회 동안 만든 API 들이다. CRUD 기능을 구현했다. DB도 선택을 했어야하는데 싱크트리 영상에 올라와 있는 AirTable을 사용하기로 했다. 다만 1년전에 변경 사항이 있어서 토큰 인증 부분이 유튜브와 살짝 달랐지만 크게 어려움은 없이 연동을 했다. 대부분 유튜브 영상을 보면 해결..
[프로그래머스/파이썬/구명보트] 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작성해주세요..
항해 플러스 코육대 - HangMan 게임 만들기 오늘은 항해 플러스 제 1회 코딩대회에서 HangMan 게임을 만든 경험을 공유해보려 합니다. HangMan 게임은 단어를 맞추는 게임으로, 사용자가 단어를 추측하면서 하나씩 알파벳을 맞춰나가는 게임입니다. 이번 대회에서는 flutter를 이용해 이 게임을 만들었는데, 추석 때 심심하던 찰나에 재밌는 경험이었습니다. 이 경험을 통해 flutter의 장점과 함께 코딩 대회에서의 경험을 공유하고자 합니다. 추천인 : 정민석 1. 기능 구현 설명 (바탕 화면은 홈페이지 썸네일에서 가져왔다) 1. 첫 화면은 문제를 선택하는 페이지 입니다. 위의 페이지에서는 'hangman', 'flutter', 'dart', 'mobile', 'game', 'program', 'developer', 'android', 'jav..
[백준/1149/파이썬] RGB거리 소스코드 N = int(input()) color = [] for i in range (N): color.append(list(map(int,input().split()))) for i in range (1,N): color[i][0] += min(color[i-1][1],color[i-1][2]) color[i][1] += min(color[i-1][0],color[i-1][2]) color[i][2] += min(color[i-1][1],color[i-1][0]) print(min(color[-1])) 알고리즘 color = [[30, 19, 5],[64, 77, 64],[15, 19, 97],[4,71,57],[90,86,84],[93,32,91]] [[30, 19, 5], [69, 82, 83],..
[백준/14501/파이썬] 퇴사 소스코드 N = int(input()) work = [] for i in range (N): work.append(list(map(int, input().split()))) dp = [0] * (N+1) for i in range(N): for j in range(i+work[i][0],N+1): if dp[j] 1일차에 3일을 일할 수 있으면 4일부터 일을 하는 것 if dp[j] < dp[i] + work[i..
[백준/11401/파이썬] 소스코드 def power(a, b): if b == 0: return 1 if b % 2: return (power(a, b//2) ** 2 * a) % p else: return (power(a, b//2) ** 2) % p p = 1000000007 N, K = map(int, input().split()) fact = [1 for _ in range(N+1)] for i in range(2, N+1): fact[i] = fact[i-1] * i % p A = fact[N] B = (fact[N-K] * fact[K]) % p print((A % p) * (power(B, p-2) % p) % p ) 알고리즘 페르마의 소정리를 이용하여 푸는 문제였다. 페르마의 소정리는 다른 블로그에 잘 적혀있으니 ..
[백준/2579/파이썬] 계단오르기 소스코드 N = int(input()) s = [] for i in range (N): s.append(int(input())) dp = [0]* (N) dp[0] = s[0] dp[1] = s[0]+s[1] dp[2] = max(s[1]+s[2],s[0]+s[2]) for i in range(3,N): dp[i] = max(dp[i - 3] + s[i - 1] + s[i], dp[i - 2] + s[i]) print(dp[N-1]) 알고리즘 계단을 오르는 방법은 2가지가 있다. 1. 연속된 2계단 오르고 2칸 오르기 2. 한칸 밟고 1칸 밟기 이해를 돕기 위해 마지막 계단을 생각해보면 1. 마지막 계단(N)은 밟아야한다. 2-1. N-1을 밟으면 N-3에서 올라와야한다(연속된 3개는 못 오르므로) 2-..
[백준/20125/파이썬] 쿠키의 신체측정 소스코드 N = int(input()) cookie = [] for _ in range (N): cookie.append(input()) heart = [0,0] body = [0,0,-2,-1,-1] def head(i,j): if cookie[i][j] =='*' and cookie[i][j-1]=='_': heart[0] = i+1 heart[1] = j for i in range(N): for j in range(N): if not heart[0]: head(i,j) #왼팔 if i == heart[0] and cookie[i][j] =="*" and j he..