본문 바로가기

프로그래머스24

[Algorithm] 프로그래머스 정수 삼각형 | 파이썬 (DP, Dynamic Programming) ※ 정수 삼각형https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 해결 TIP우선 예제 입력에 대해 30이 어떻게 나왔는지 파악해보자. 맨 위인 7에서 부터 밑으로 내려가며 합해준다. 두 번째 줄은 가운데가 없고 양끝만 존재하므로 10, 15가 된다. 세 번째 줄부터는 바로 위(두 번째 줄)에서 얻을 수 있는 숫자가 2가지(왼쪽 10, 오른쪽 15) 경우의 수인 가운데가 존재한다. 이때, 더 큰 숫자인 16으로 교체가 된다. 이를 반복하여 알 수.. 2024. 7. 6.
[Algorithm] 프로그래머스 멀리 뛰기 | 파이썬 (DP, Dynamic Programming) ※ 멀리 뛰기https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 해결 TIPn이 1일 때부터 생각해보자. dp[1] = 1, 2라면 1씩 2번, 2씩 1번 총 2이다. dp[3]은 (1,1,1),(2,1),(1,2) 3이다. dp[4] = 5, dp[5] = 8이므로 피보나치 수열이 떠오른다. 전체 코드def solution(n): if n == 1: return 1 else: dp = [0] * (n+1) .. 2024. 7. 5.
[Algorithm] 프로그래머스 무지의 먹방 라이브 | 파이썬 (2019 KAKAO BLIND RECRUITMENT) ※ 42891 무지의 먹방 라이브https://school.programmers.co.kr/learn/courses/30/lessons/42891?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 해결 TIP재귀함수와 if, for 문으로 구현하려 했지만 생각보다 까다로운 조건들이 많았다. 우선순위 큐를 활용하여 쉽게 구현할 수 있다. 시간이 적게 걸리는 음식부터 전체 시간 k에서 빼가며 순차적으로 계산해야 한다. 소요 시간과 음식 번호를 같이 저장하고 우선순위를 위해 heapq 모듈을 사용한다. 전체 코드import heapq.. 2024. 6. 24.
[Algorithm] 프로그래머스 타겟 넘버 | 파이썬 ※ 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 TIP DFS로 구현한다. 숫자 한 개에 대해 음수, 양수 2가지 경우의 수를 각각 뻗어나가며 모든 경우의 수 중에, 마지막 결과가 타겟과 같을 때 방법 하나를 추가하는 식으로 진행한다. 전체 코드 answer = 0 def dfs(numbers, target, result, idx): global answer # 깊이가 같고 마지막 결과가 .. 2024. 3. 26.
[Algorithm] DFS 프로그래머스 92342 양궁대회 | C++ ※ 92342 양궁대회 코딩테스트 연습 - 양궁대회 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include using namespace std; int maxDiff = 0; //최대 점수차 //최대 점수차와 현재 점수차가 동일한 경우 bool compare(vector ryan, vector &answer) { //작은점수부터 화살수를 비교 🠒 현재값이 작은점수에 화살수가 더 많다면 true for(int i = 10; i >= 0; i--) { if(ryan[i] > an.. 2022. 9. 1.
[Algorithm] 그리디 프로그래머스 42862번 체육복 | C++ ※ 42862 체육복 코딩테스트 연습 - 체육복 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include using namespace std; int solution(int n, vector lost, vector reserve) { int answer = 0; //인덱스 에러가 나지 않도록 예외처리 (크기를 2만큼 여유두고) vector clothes(n + 2, 1); for (auto i : lost) { //체육복을 잃어버린 학생 clothes[i]--; } for (a.. 2022. 8. 22.