문제 출처:https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 지문처럼 단방향 그래프로 설정하여 풀면 간단히 해결할 수 있는 문제다. 초기 설정은 enroll의 부모는 referral로 하여 ArrayList배열을 설정해주면 된다. 보기에는 문자열로 되어있으므로 필자는 enroll에 이름들을 순서대로 hashmap으로 해서 0부터 순차적으로 값을 주었다. 즉, John은 1, mary는 2... 이런식으로 ..
문제 출처: https://programmers.co.kr/learn/courses/30/lessons/49191 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 문제의 핵심은 i번 선수의 순위를 확실히 알 수 있는 방법은, i번 선수의 경기 결과가 n-1개 있으면 확실히 그 순위를 알 수 있다. 물론 그렇지 않더라도 n-1개의 결과를 가지고 있는 선수와 연결된 또 다른 선수의 결과 또한 알 수 있다. 필자는 이 문제를 2가지 방식으로 해결했다. 첫 번째는 특정 선수가 이긴 횟수+진 횟수 = n-1개 이면 순위를 구할 수 있다. 예제 테케를 보면, n results return 5 [[4, 3], [4, 2], [3..