[알고리즘/프로그래머스] 퍼즐 조각 채우기
위클리 챌린지 > 퍼즐 조각 채우기 코딩테스트 연습 - 퍼즐 조각 채우기 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 나의 풀이 - BFS를 사용하여 각 판에 있는 퍼즐 조각 좌표를 찾는다. 같은 퍼즐 조각(또는 빈 자리 조각)끼리 같은 리스트 안에 들어가도록 해줌 그리고 option을 사용하여 game_board..
[알고리즘/프로그래머스] 전력망을 둘로 나누기
위클리 챌린지 > 전력망을 둘로 나누기 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 나의 풀이 - BFS 사용해서 끊을 수 있는 모든 경우의 수를 구해 가장 작은 값을 구한다. - 시간이 오래 걸리는 것 같다. 다른사람의 풀이 - Union find (disjoint-set) 사용 -- 공부 필요 - defaultdict로 처음 dict 초기화 : 빈 딕셔너리는 미리 삽입하지 않은 key를 호출하면 에러 발생 --> 이를 방지해줌 from collections import defaultdict
[알고리즘/프로그래머스] 교점에 별 만들기
위클리 챌린지 > 교점에 별 만들기 코딩테스트 연습 - 교점에 별 만들기 [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, - programmers.co.kr 나의 풀이 - 각 min값을 좌표 0으로 바꾸듯이 구하면 box가 밑에서부터 차기 때문에 뒤집어서 저장해 출력해주어야 함 import itertoo..