lv34 프로그래머스 - 퍼즐조각 맞추기 문제 설명 한 게임판과 퍼즐조각이 흩어져있는 판이 주어진다. 게임판에 비어있는 란에 흩어져있는 판에 있는 퍼즐을 끼워 넣어 빈 공란을 채우는 개수를 구하는 문제이다. 여기서의 핵심은 퍼즐조각이 위치한 판에서 도형을 추출하는 과정이 중요하다. 그리고 이 도형을 빈 공란에 맞춰 끼울 수 있는지 여부도 판단해야 한다. 나는 해당 도형을 BFS로 추출했다. 그리고 해당 정보를 가지고 객체를 생성했다. 객체는 해당 도형을 표현한 2차원 배열을 필드변수로 가지고 있다. class Puzzle { int cnt; // 1의 개수 int map[][]; public Puzzle(int map[][], int cnt) { this.map = map; this.cnt = cnt; } } 여러 도형들을 BFS로 추출하여 해.. Algorithm/프로그래머스 2023. 4. 17. 프로그래머스 - 표 편집 문제 설명 주어진 명령을 따라 이행한 뒤 그에 맞는 표 값을 출력하는 문제이다. 완벽한 구현문제이다. 자료구조를 어떻게 사용하지도 물어보는 문제인것같다. TRY 2차원 배열과 map 이 두가지를 이용했다. 2차원 배열에는 각 칸이 가지고 있는 문자값을 저장했고 map에는 해당 칸과 연관되어 있는 각 칸들의 정보를 저장했다. 왜냐하면 병합 또는 병합제거, 정보 수정에 이전에 수행했던 연관되어 있는 칸들이 필요했기 때문이다. 병합시 - 이전에 수행된 연관정보들로 부터 추가로 병합을 이어나가야 하기 때문. 병합제거 - 이전에 수행된 연관정보들 모두 초기화 해야하기 때문. 정보수정 - r,c와 병합을 한 셀들을 기반으로 모든 값을 교체해야하기 때문. 주의사항 다른 연관관계를 이어붙이기 위한 과정에서 변경에 대한.. Algorithm/프로그래머스 2023. 4. 12. 프로그래머스 - 표현 가능한 이진트리 필요지식 이진트리 트리순회 문제 설명 해당 수를 이진트리로 표현할 수 있으면 1 없으면 0을 출력하는 문제이다. 주어진 문제 예시를 보면 주어진 이진트리에 더미노드를 추가하여 포화 이진트리를 형성한다. 즉, 이 것을 이용해 이진트리로 만들 수 있는지 없는지를 판별하면 된다. 문제에는 포화이진트리를 만들수 있는지 없는지 이렇게 물어보지 않고 있다. numbers 에 주어진 순서대로 하나의 이진트리로 해당 수를 표현할 수 있다면 1을, 표현할 수 없다면 0 이진트리에 속해있는 것이 포화이진트리이다. - 이진트리는 자식노드가 최대 2개인 트리이다. - 포화이진트리는 이진트리이면서 모든 레벨이 노드로 꽉 차 있어야 한다. 그렇기 때문에 이 문제는 해당 수를 이진수로 표현하고 포화이진트리로 형태로 만들면서 이것이.. Algorithm/프로그래머스 2023. 4. 11. 프로그래머스 - 등산 코스 정하기 문제 설명 n개의 등산지점이 있다. 출발지점으로 부터 목적지 지점까지 , 목적지점으로부터 출발지점까지 최소 인텐시티를 등상코스를 정하라 인텐시티란 거쳐가는 최대 간선 비용이다. 생각한 아이디어 인텐시티를 짧게 하려면 짧은 코스트를 가진 방향 리스트로 부터 구할 수 있다고 생각했다. 하지만 일반적인 다익스트라는 한 지점으로부터 다른지점의 최소 거리를 구하는 것이다. 조금 변형하여 최소거리가 아닌 최소 인텐시티 테이블을 두고 구하면 어떨까라는 아이디어는 해설을 참조하여 발견했다. 주의사항 간선의 정보를 저장하는 구조를 잘만들어야 한다. 봉우리는 단 한번만 지나야 하는 규칙이 존재한다. 다른 출입구는 거칠 수 없어야 한다. 이런 경우가 있을 수 있다 봉우리가 가장 작은 간선비용을 가져서 한번더 지날 수 있기 .. Algorithm/프로그래머스 2023. 4. 6. 이전 1 다음