본문 바로가기
728x90

programmers46

[PG/Python] 단어 변환 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 📌 문제 접근 방법 dfs를 사용하여 풀이하였고, 스택에 변환 횟수를 같이 저장해주었다. 만약 target 단어가 words에 없다면 바로 0을 리턴한다. words에 target이 있다면 스택에서 하나씩 pop하여 words에 있는 단어와 비교한다. words의 단어와 딱 한 글자만 다른 단어를 다시 스택에 .. 2021. 12. 22.
[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.
728x90