본문 바로가기
728x90

ALGORITHM/PROGRAMMERS41

[PG/Python] 다단계 칫솔 판매 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 📌 문제 접근 방법 본인의 이름을 key값으로 추천인의 이름을 value로 recommender에 저장한다. 본인의 이익은 10%를 빼고 저장하고 temp에 10%만 다시 담는다. 계속해서 부모 노드(추천인)을 타고 올라가면서 10%만 담는 과정을 반복한다. 추천인이 -가 되거나 temp에 담긴 값이 0이 되면 반복문을 멈춘다. (0일때 안멈추면 .. 2021. 12. 17.
[PG/Python] 배달 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 📌 문제 접근 방법 다익스트라 알고리즘을 사용하였다. 우선 각각의 노드간의 연결 관계를 인접행렬에 저장해주었다. 연결 관계가 2개 이상인 경우도 있기에, 이미 값이 있다면 최소의 거리를 저장하도록 했다. distance라는 리스트를 만들어서 여기에 해당 노드까지 가는 최소 거리를 저장하였다. 항상 출발지는 1번 노드이므로 1번 .. 2021. 12. 16.
[PG/Python] 행렬 테두리 회전하기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 📌 문제 접근 방법 입력으로 들어온 행과 열의 크기에 따라 2차원 리스트를 생성한다. 리스트에 시계방향으로 '오른쪽->아래->왼쪽->위'의 방향을 저장한다. queries를 하나씩 순회하며 회전을 시키고, 회전할 때마다 최소값을 갱신한다. 1회 회전이 끝날 때마다 저장된 최소값을 answer에 저장한다. 📌 코드 def solution.. 2021. 12. 16.
[PG/Python] 튜플 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 📌 문제 접근 방법 입력이 문자열로 들어오기 때문에 split을 쓰려다가 ','로 끊는 건 안되겠다 생각하고 포기했는데, 생각해보니 '},'으로 끊으면 됐었다. 우선, split을 사용하지 않고 sets에 문자열로 들어온 입력값을 리스트 형태로 바꿔서 저장해주었다. sets를 길이순대로 정렬한 후, s.. 2021. 12. 16.
728x90