목록전체 글 (45)
코딩 공부
대충 알고 있으면 헷갈릴 수 있는 라이브러리와 프레임워크에 대해서 알아보겠습니다. 라이브러리(Library) 라이브러리는 라이브러리는 재사용 가능한 코드 모음으로, 특정 기능이나 작업을 수행하기 위한 함수, 클래스, 모듈 등의 집합이다. 개발자가 필요한 기능을 원할 때 호출해 사용할 수 있다. 라이브러리는 제어 흐름을 개발자에게 넘기지 않으며, 개발자가 직접 호출해 사용한다. 여기서 제어 흐름을 개발자에게 넘기지 않는다는 것의 의미는 라이브러리는 개발자의 코드를 보조하고 필요한 기능을 수행하지만, 개발자는 라이브러리의 내부 동작에 직접적으로 개입할 수 없음을 뜻한다. 예) Numpy, TensorFlow, requests 등 프레임워크(Framework) 프레임워크는 애플리케이션의 구조와 흐름을 정의하는..

덧셈, 뺄셈, 곱셈, 나눗셈 연산자의 개수를 받아서 사용할 때마다 하나씩 빼는 형태로 calc 함수를 만들어야겠다. 주어진 "수열의 숫자 개수"는 "연산자의 개수 + 1"이므로 calc안에서 number_lst[n+1]을 이용한다. 나눗셈을 할 때에는 문제에 쓰여있는대로 유의해서 로직을 짠다(음수를 양수로 나눌 때). # 예제 3번 def calc(n, pl, mi, mu, di, result): global max_ans, min_ans if n == N-1: # 모든 연산자를 사용했다면 max_ans = max(max_ans, result) # 최댓값 갱신 min_ans = min(min_ans, result) # 최솟값 갱신 return if pl: # 사용할 수 있는 덧셈 연산자가 남아있을 경우 ..

문제에 있는 보드 형태 그대로 이차원 배열을 board에 담는다. 항상 N//2명을 가진 두 팀으로 나누어지므로, dfs를 짤 때 a팀에 들어가는 경우와 그렇지 않은 경우에는 b팀으로 들어가는 경우로 나눈다. N//2명을 가지는 두 팀으로 나누어졌을 때만, answer를 갱신할 수 있도록 한다. (DFS 안) 각 팀의 능력치를 구하기 위해 이중 for문을 이용해 계산한다. answer 갱신은 두 팀의 능력치의 최소값으로 둔다. def dfs(n, team_a, team_b): global answer if n == N: if len(team_a) == len(team_b): # 두 팀 모두 N//2명을 가질 때 a_score, b_score = 0, 0 # 각 팀의 능력치 for i in range(N/..

문제에 있는 테이블 형태 그대로 Ti, Pi 리스트를 만든다. 상담일을 선택할 수도, 아닐 수도 있는 모든 경우를 생각하므로 dfs를 이용한다는 생각을 떠올린다. (DFS 안에서) 현재 날짜에서 걸리는 상담일을 더했을 때 마지막 날짜를 넘지 않을 경우, 다음 dfs로 넘길 수 있다는 조건을 이용한다. 또한, 현재 상담일을 사용하지 않고 다음으로 그냥 넘기는 경우도 고려해 준다. 마지막 상담일에 다다랐을 때, answer를 cost의 최댓값으로 갱신해 준다. def dfs(n, cost): global answer if n == N: # 마지막 상담일에 다다랐을 경우 answer = max(answer, cost) return if Ti[n] + n

score라는 리스트를 하나 만들어준다. 구간의 시작과 끝을 받아 total이라는 변수에 그 구간 사이의 값들을 모두 더해준다. total을 구간에 들어가는 수의 개수로 나눠주고, f-string에서 소수점을 표현하는 ":.2f"를 사용해 형식을 맞춰준다. N, K = map(int, input().split()) score = list(map(int, input().split())) #print("score :", score) #print() for _ in range(K): start, end = map(int, input().split()) total = 0 for k in range(start-1, end): total += score[k] #print("total :", total) #print..