본문 바로가기

전체 글

(161)
[백준/2775/파이썬] 부녀회장이 될테야 소스코드 N = int(input()) for _ in range (N): k = int(input()) n = int(input()) dp = [[i+1 for i in range (n+1)] for j in range(k+1)] for floor in range (1,k+1): for ho in range (1,n+1): dp[floor][ho] = dp[floor-1][ho] + dp[floor][ho-1] print(dp[k][n-1]) 알고리즘 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120], [1, 4, 10, 20, 35, 56, 84, 1..
[백준/1931/파이썬] 회의실 - Greedy 소스코드 N = int(input()) answer = 0 room = [] endTime = 0 for _ in range (N): room.append(list(map(int,input().split()))) room.sort(key = lambda x : (x[1],x[0])) for i in room: if endTime
[백준/17298/파이썬] 오큰수 - stack 소스코드 k = int(input()) ocs = list(map(int,input().split())) answer = [-1] * k stack = [] for i in range (k): while stack and ocs[i] > ocs[stack[-1]]: answer[stack[-1]] = ocs[i] stack.pop() stack.append(i) print(*answer) 알고리즘 자기보다 큰 수를 찾지 못하는 경우는 -1을 갖게 되므로 초기 세팅을 -1 * k로 해준다. for문을 돌며 자기보다 큰 수를 발견하면 스택에 있는 인덱스를 answer[인덱스]에 그 숫자를 넣어준다. 3 5 2 7 이 입력 되었다고 생각을 해보자 0 1 2 3 1. 3을 비교하는데 3의 인덱스인 0을 스택에 ..
[프로그래머스/주차 요금 계산/파이썬] 소스코드 def solution(fees, records): answer = [] parking = dict() feeTotal = dict() for record in records: recordToList = record.split(" ") if recordToList[2] == "IN": parking[recordToList[1]] = recordToList[0] elif recordToList[2] == "OUT": if recordToList[1] in feeTotal : feeTotal[recordToList[1]] += calculateTime(parking[recordToList[1]],recordToList[0]) else : feeTotal[recordToList[1]] = calcul..
[프로그래머스/k진수에서 소수 개수 구하기/파이썬] 소스코드 def solution(n, k): changedNum = '' checkPrime = '' answer = 0 while n != 0 : changedNum += str(n%k) n = n//k changedNum = changedNum[::-1].split('0') for i in (changedNum): if i != '': if isPrime(int(i)): answer += 1 return answer def isPrime(number): if number==1: return False for i in range(2, int(number**(0.5))+1): if number%i==0: return False return True 알고리즘 문제를 나눠보면 다음과 같이 2개만 구현하면 된..
[1912/백준/파이썬] 연속합 - DP 소스코드 A = int(input()) numlist = list(map(int,input().split())) for i in range (1,A): numlist[i] = max(numlist[i],numlist[i]+ numlist[i-1]) print(max(numlist)) 알고리즘 numlist= [10 ,-4 ,3 ,1 ,5, 6 ,-35 ,12, 21, -1] 일 때 [10, 6, 3, 1, 5, 6, -35, 12, 21, -1] [10, 6, 9, 1, 5, 6, -35, 12, 21, -1] [10, 6, 9, 10, 5, 6, -35, 12, 21, -1] [10, 6, 9, 10, 15, 6, -35, 12, 21, -1] [10, 6, 9, 10, 15, 21, -35, 12, ..
[11053/백준/파이썬] 가장 긴 증가하는 부분 수열 - DP 소스코드 A = int(input()) numlist = list(map(int,input().split())) dp = [1]*A for i in range (A): for j in range (i): if numlist[i] > numlist[j]: dp[i] = max(dp[i],dp[j]+1) print(max(dp)) 알고리즘 numlist= [10, 20, 10, 30, 20, 50,] 위의 예시를 바탕으로 만약 6개의 계단이 있다고 생각을 해보자 무조건 숫자가 커야 올라가는 것이다. - 1번 계단 10 : 1번 밟으면 끝이다. - 2번 계단 20 : 1번 계단 -> 2번계단 2번 밟는다. - 3번 계단 10 : 숫자가 커야 올라갈 수 있으므로 20 -> 10은 안된다. 10 -> 10 한번 ..
[싱커톤 시즌 3 회고록] 싱크트리 - FINSET 싱크트리란? 노코드 블록 툴이다. 간단하게 블록을 맞추는 형태로 되어있고 은근 지원하는 기능이 많아서 간편하게 백엔드를 구축할 수 있었다. 참가 이유 학교에서 동기들과 함께 스터디를 진행하던 도중 싱커톤을 발견하게 됐고 다양한 증권사의 API를 무료로 사용해 볼 수 있어서 참가를 했다. 팀 구성 우리팀은 안타깝게도 Frontend 개발자로만 구성이 되어있었다.. 근데 백엔드를 해보고 싶어서 싱크트리를 다뤄보게 되었다. 대회 동안 만든 API 들이다. CRUD 기능을 구현했다. DB도 선택을 했어야하는데 싱크트리 영상에 올라와 있는 AirTable을 사용하기로 했다. 다만 1년전에 변경 사항이 있어서 토큰 인증 부분이 유튜브와 살짝 달랐지만 크게 어려움은 없이 연동을 했다. 대부분 유튜브 영상을 보면 해결..