개발자취업 54

99클럽 코테 스터디 19일차 TIL + DP

https://www.acmicpc.net/problem/28069import sysinput = sys.stdin.readlinen, k = map(int, input().split())inf = 1e7dp = [inf] * (n+1)dp[0] = 0for i in range(n): if i i+1번째 계단에 올 수 있는 횟수는 두가지 방법으로 구할 수 있다.이전 칸에서 한칸 오르기 > 기존횟수 + 1i+i//2 칸 오르기 > 기존횟수 + 1즉 기존 자신의 횟수와 이전 칸 (i) 에서 올라오는 횟수를 비교해 최솟값을 가지고 있으면 된다.n개의 계단을 돌면서 횟수를 구해주고 k횟수 보다 적다면 k횟수 안에 계단에 도달한 것이기 때문에 minigimbob 출력k횟수 보다 많다면 k횟수 안에 도달하지..

Algorithm/Problems 2025.04.24

99클럽 코테 스터디 15일차 TIL + DP

https://www.acmicpc.net/problem/17271import sysinput = sys.stdin.readlinemod = 1000000007n, m = map(int, input().split())dp = [1] * (n+1)for i in range(m, n+1): dp[i] = (dp[i-1] + dp[i-m]) % modprint(dp[n])A스킬 시전시간은 1초, B스킬 시전시간은 m초 이기 때문에 n이 m보다 작을 때에는 무조건 A스킬만 사용할 수 있다.m초 이하일 때에는 A스킬만 사용하기 때문에 경우의 수는 1 이다. (dp[i] = dp[i-1] = 1)m초 이상일 때에는 A스킬과 B스킬을 함께 사용할 수 있다.t초 일 때t-1초까지 스킬 쓴 상태에서 A스킬 사용 가..

Algorithm/Problems 2025.04.18

99클럽 코테 스터디 13일차 TIL + 구현

https://school.programmers.co.kr/learn/courses/30/lessons/12951?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef solution(s): answer = [] sentence = s.split(' ') for word in sentence: if word: answer.append(word[0].upper() + word[1:].lower()) else: answer.append(word) return " ".join(answer..

Algorithm/Problems 2025.04.16

99클럽 코테 스터디 12일차 TIL + DP

https://www.acmicpc.net/problem/2156# 2156 포도주 시식import sysinput = sys.stdin.readlinen = int(input())wine = [0]for _ in range(n): wine.append(int(input()))dp = [0] * (n+1)dp[1] = wine[1] # 1번째는 첫잔 마시는게 최대if n > 1: dp[2] = wine[1] + wine[2] # 2번째는 첫번째 잔 + 두번째 잔 마시는게 최대# i번째 와인을 마시고 i-2까지 마신 양# i번째를 마시지 않음 # i, i-1번째를 마시고 i-3번째 까지 마신 양 for i in range(3, n+1): dp[i] = max(dp[i-2] + wine[i]..

Algorithm/Problems 2025.04.15

99클럽 코테 스터디 11일차 TIL + 이분탐색

https://www.acmicpc.net/problem/16401# 16401 과자 나눠주기import sysinput = sys.stdin.readlinem, n = map(int, input().split())snack = sorted(list(map(int, input().split())))start = 1end = snack[-1]answer = 0while start = m: answer = mid start = mid + 1 else: end = mid - 1print(answer)이분 탐색으로 조카에게 나눠줄 막대 과자의 최대 길이 (mid) 를 구해야 한다.이분 탐색은 오름차순 정렬을 해야 한다.최소 길이 1인 막대과자로 나눠야 하기 때문에 st..

Algorithm/Problems 2025.04.14

99클럽 코테 스터디 10일차 TIL + 그리디

https://www.acmicpc.net/problem/1783# 1783 병든 나이트import sysinput = sys.stdin.readlinen, m = map(int, input().split())answer = 0if n == 1: answer = 1elif n == 2: answer = min(4, (m+1)//2) # 1 6 이면 4elif m = 3 answer = min(4,m)else: answer = m-2print(answer) 우선 n >= 3 일 때부턴 elif로 위에서 걸러지기 때문에 m으로 조건문을 작성했다.병든 나이트는 체스판 가장 왼쪽아래에서 출발하고 방문할 수 있는 칸의 최대 개수를 구해야 한다.이동 횟수가 4 이상이면 4가지 이동 방법을 모두..

Algorithm/Problems 2025.04.12