Python

    [SWEA, Python] 백만 장자 프로젝트

    정답 코드 t = int(input()) for tc in range(1, t+1): ans = 0 n = int(input()) price = list(map(int, input().split())); while len(price) != 0: max_idx = price.index(max(price)) cal = price[:max_idx] for i in range(len(cal)): ans += abs(price[max_idx] - price[i]) price = price[max_idx+1:] print(f'#{tc}', ans) 풀이 과정 1. dfs 재귀로 시도 -> 실패(시간초과) def dfs(idx, benefit, cost): global n, price, ans if idx == n:..

    [프로그래머스, Python] 두 원 사이의 정수 쌍

    정답 코드 import math def solution(r1, r2): num = 0 for x in range(1, r2+1): y_max = math.floor(math.sqrt(r2**2 - x**2)) y_min = 0 if x >= r1 else math.ceil(math.sqrt(abs(r1**2 - x**2))) num += y_max - y_min + 1 return num * 4 풀이 먼저, 문제에서 제시해 준 그림을 보면, 작은 원(r1)이나 큰 원(r2)사이의 정수를 모두 구하는 문제라는 것을 쉽게 알 수 있습니다. 이때, 모든 정수 쌍을 구하는 것이 아닌, 같은 패턴의 반복이므로 하나의 사분면의 정수 쌍을 모두 구한 뒤 *4를 해주면 답을 더 쉽게 구할 수 있습니다. 저는 1사분면을..

    [프로그래머스, Python] 등굣길

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 학교(m,n)에서 집(0,0)으로 가는 방법 def dfs(x, y, dp): if x < 0 or y < 0 or dp[y][x] == -1: return 0 if dp[y][x] == 0: dp[y][x] = dfs(x - 1, y, dp) + dfs(x, y - 1, dp) return dp[y][x] def solution(m, n, puddles): dp = [[0 for _ in range(m)] for _ in range(n)] for p in puddles: x, y = p dp[y-1][..