본문 바로가기

Programming/Programmers47

[프로그래머스] 138476번 - 귤 고르기 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 크기가 서로 다른 종류의 수의 최솟값을 구해야 하므로 귤의 개수가 가장 많은 것부터 순차적으로 k개 고르면 됩니다. 문제 설명의 예시로 보면, 귤의 무게 별 개수는 아래의 표와 같습니다. 1 2 3 4 5 1개 2개 2개 1개 2개 귤 6개를 골라야 하기 때문에 개수가 가장 많은 2를 2개, 3을 2개, 5를 2개 고르면 됩니다. 1) HashMap 사용, 2) 배열 사용 두 .. 2023. 6. 14.
[프로그래머스] 12914번 - 멀리 뛰기 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 계단을 올라갈 수 있는 방법은 1칸 혹은 2칸을 올라가는 방법입니다. 그렇다면 i번째 계단을 올라올 수 있는 방법은 i-1번째 계단에서 1칸 올라오는 방법, i-2번째 계단에서 2칸 올라오는 방법, 총 2가지 경우일 것입니다. 따라서 점화식은 dp[i] = dp[i-1] + dp[i-2] 라고 쓸 수 있습니다. 이 때 dp[0]은 0번째 계단이기 때문에 0이 되고, dp[1]은 .. 2023. 6. 14.
[프로그래머스] 12953번 - N개의 최소공배수 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 n개의 수들의 최소공배수를 구하려면 앞에서부터 2개씩 최소공배수를 구하고, 그 다음은 구한 최소공배수와 그 다음 수의 최소공배수, ··· 를 반복합니다. 따라서 처음에는 arr[0]과 arr[1]의 최소공배수 result를 구합니다. 그 다음 2번째부터 n-1번째까지, result와 arr[i]의 최소공배수를 구합니다. 마지막까지 계산한 result가 n개의 최소공배수가 됩니다... 2023. 6. 14.
[프로그래머스] 12980번 - 점프와 순간 이동 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 이동의 가능한 경우의 수는 2가지 입니다. K칸 점프 (현재까지 온 거리) x 2 위치로 순간이동 이때 점프하는 칸 수를 최소화 하고 싶기 때문에 순간 이동을 하다가 필요한 경우에 1칸 점프를 해야 합니다. 0칸에서 N칸으로 이동을 N칸에서 0칸으로 이동이라고 생각하면, (현재까지 온 거리) x 2 위치로 순간이동은 (현재 위치한 칸 / 2)의 위치로 순간이동 하는 것과 마찬가지.. 2023. 6. 13.
[프로그래머스] 43164번 - 여행경로 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 2. 풀이 ⚠ 이 문제는 주의해야 할 조건들이 몇 개 있다. 항상 "ICN" 공항에서 출발한다. 주어진 항공권을 모두 사용해야 한다. 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 해야 한다. 3개의 조건을 잘 염두에 두고 문제를 풀어보자. 우선, 주어진 항공권을 모두 사용해서 모든 공항을 방문할 수 있는 경로를 찾아야 하기 때문에 DFS를 떠올려 볼 .. 2023. 6. 12.
[프로그래머스] 12985번 - 예상 대진표 (Java) 출처: 프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 입출력 예를 살펴보면 N=8이기 때문에 1, 2, 3, 4, 5, 6, 7, 8 번의 참가자가 게임을 진행한다. 토너먼트 형식이기 때문에 1번 - 2번 / 3번 - 4번 / 5번 - 6번 / 7번 - 8번 끼리 진행된다. 1라운드가 끝나면 번호는 다시 1부터 배정이 되기 때문에 1, 2, 3, 4번으로 배정이 될 것이다. 이때 규칙을 찾을 수 있는데,.. 2023. 6. 12.