본문 바로가기
[프로그래머스][예산] 정렬을 이용한 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 이해: 각 부서에 지원할 수 있는 전체 예산 금액 budget 이 정해져 있다. 정해진 금액 budget과 부서별로 필요한 예산이 담긴 배열 d가 주어질 때, 예산 한도 내에서 지원할 수 있는 최대 부서의 수를 구하라. 이 문제를 정리하는 이유: 부서별 필요 예산이 담긴 d를 오름차순으로 정렬하기만 하면 매우 쉽게 풀 수 있는 문제를 또 DFS로 풀려고 했다. 지원할 수 있는 부서의 .. 2023. 1. 23.
[프로그래머스][점프와 순간 이동] DFS를 사용하지 않는 풀이 https://school.programmers.co.kr/learn/courses/30/lhttps://school.programmers.co.kr/learn/courses/30/lessons/12980#essons/12980# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 이해: 위치 0부터 점프나 순간이동을 해서 목적지 N까지 도달한다. 점프를 할 경우 한 칸을 점프할 때마다 배터리가 하나씩 소모된다. 예를 들어 3칸을 점프했다면 소모된 배터리는 3이다. 순간이동을 할 경우 현재까지 이동한 거리 즉. 현재 인덱스에서 2배가 된 인덱스'로.. 2023. 1. 22.
[백준][14888][Python] 파이썬에서 음수 나눗셈에 대해, // https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제 자체는 평이하며 브루트포스와 백트랙킹을 활용하면 풀 수 있다. 이 포스팅에서는 문제 자체에 대한 풀이는 다루지 않도록 한다. 이 문제를 따로 포스팅하는 이유는 파이썬의 나눗셈 연산에 대한 의문을 해소하기 위해서이다. 위의 문제는 숫자들을 사칙연산을 해야 하는데 더하기, 빼기, 곱하기는 +, -, * 와 같이 익히 알고 있는 연산자를 쓰면.. 2023. 1. 12.
[백준][2661] 백트랙킹 https://www.acmicpc.net/problem/2661 2661번: 좋은수열 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다. www.acmicpc.net import sys def check(res): for i in range(1, len(res)//2+1): if res[-i*2:-i] == res[-i:]: return True return False def backtracking(L, res): global result if check(res): return if L == n: print(res) sys.exit(0) else: for i in rang.. 2023. 1. 9.
[백준][14889] Combinations을 이용한 풀이 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제에 대한 이해: 선수들의 번호를 통해 주어진 행렬M에서 선수의 능력치를 찾을 수 있다. 1, 2, 4 번의 선수가 한 팀에 속한다면 해당 팀의 능력치는 M[1,2] + M[1, 4] + M[2, 1] + M[2, 4] + M[4, 1] + M[4, 2], 즉 1, 2, 4로 이룰 수 있는 원소의 수가 2개인 모든 집합에서 첫번째 원소를 행, 두번째 원소를 열로 보고 찾은 수의 합이다. 1번이 2번과 협업할 때, 2.. 2023. 1. 5.