알고리즘/프로그래머스
-
프로그래머스 ) 두 큐 합 같게 만들기 (lv.2)알고리즘/프로그래머스 2022. 8. 30. 19:40
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두개의 큐를 놓고 popleft()와 append()를 반복하면서 두 큐의 합을 동일하게 만드는 문제였다. 여기서 과연 for 문을 몇번 돌 것인가가 질문이었으며 처음에는 두 큐의 길이의 최댓값인 6000000번을 돌도록 설정하였으나 이후 다음의 게시글을 참고하여 최대 이동 횟수 (len(queue1)-1)x3 + 마지막 이동 후 검사 1 을 이용하도록 수정할 수 있었다. https://scho..
-
프로그래머스) 퍼즐 조각 채우기 (lv.3)알고리즘/프로그래머스 2022. 8. 21. 14:32
https://school.programmers.co.kr/learn/courses/30/lessons/84021?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 탐색을 통해서 도형의 모양을 찾고 보드에 넣을 수 있는 도형의 크기의 합을 구하는 문제이다. 먼저, 보드를 돌면서 맞춰야 하는 퍼즐의 모양을 dfs를 통해 탐색하였다. 여기서 position은 가장 기준의 되는 부분을 (0, 0)으로 잡고 상하좌우 네 방향으로 돌면서 기준점에서 이동하는 방향을 통해 block을 구한다. 보드 안에있는 모든 구멍을 다 구해서 block..
-
프로그래머스) 아이템 줍기 (lv.3)알고리즘/프로그래머스 2022. 8. 21. 13:41
https://school.programmers.co.kr/learn/courses/30/lessons/87694?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 탐색을 이용하여 최단 경로를 찾는 DFS/BFS의 문제 유형이다. 겹치도록 제작된 사각형들의 바깥 테두리따라 시작 지점부터 최종지점까지 최단 경로를 구하는 문제이다. 여기서 주의할 점은 칸이 아닌 테두리를 이용하여 경로를 이용하는 것으로 1개 간격으로 테두리 모양을 이룰 경우 이를 같은 칸으로 인식할 수 있기 때문에 보드의 크기와 모든 수를 2배로 하여 경로를 구한 ..
-
프로그래머스) 전력망을 둘로 나누기(lv.2)알고리즘/프로그래머스 2022. 8. 17. 12:12
https://school.programmers.co.kr/learn/courses/30/lessons/86971?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 완전탐색의 문제 유형으로 그룹을 나누고 각 그룹의 갯수 차를 구하는 문제이다. union_find를 이용하여, 부모를 찾고 부모가 같은 그룹의 갯수차를 구하는 방법으로 진행했다. from collections import defaultdict import math def solution(n, wires): answer = math.inf def find_answer..