-
[프로그래머스]다단계 칫솔 판매 -JAVA문제풀이/프로그래머스 2021. 5. 4. 15:00
[프로그래머스]다단계 칫솔 판매
programmers.co.kr/learn/courses/30/lessons/77486
풀이
이 문제는 올해 프로그래머스 Dev-Matching 문제라고 한다. 문제에서 주어진 조건대로 따라가며 풀었고 별다른 자료구조를 사용하지 않고 그리디하게 풀었다.
조건에 맞게 반복문을 돌리면서 현재 판매원이 가져갈 금액을 더해주고, 금액을 현재 금액의 10퍼센트로 바꾸어 주면서 연산을 했다.
테스트 코드는 모두 통과되지만, 걸리는 시간을 보니 그리 효율적인 코드는 아닌 것 같다. 더 효율적인 다른 방법이 없는지 고민해 보아야 겠다.
코드
1234567891011121314151617181920212223242526272829303132import java.util.*;class Solution {public int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) {int[] result = new int[enroll.length];for(int i = 0; i < seller.length; i++) {int cost = amount[i] * 100;String currentSeller = seller[i];while(!currentSeller.equals("-")) {int idx = 0; //enroll index를 찾음for(int j = 0; j < enroll.length; j++) {if(currentSeller.equals(enroll[j])) {idx = j;break;}}String parent = referral[idx]; // 상위 판매원double tenPercent = cost * 0.1; // 현재 급액의 10프로int sellerCost = cost - (int) tenPercent; //현재 판매원이 가져가는 금액result[idx] += sellerCost;currentSeller = parent;cost = (int) tenPercent;}}return result;}}cs '문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]로또의 최고 순위와 최저 순위 - JAVA (0) 2021.07.04 [프로그래머스]모두 0으로 만들기 - JAVA (0) 2021.06.08 [프로그래머스]풍선 터트리기 - JAVA (0) 2021.03.31 [프로그래머스]길 찾기 게임 - JAVA (0) 2021.03.14 [프로그래머스]가장 긴 팰린드롬 - JAVA (0) 2021.03.12