전체 글105 [백준 JAVA] 14500 테트로미노 문제 14500번: 테트로미노 (acmicpc.net) 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 풀이방법 처음에는 모든 모양을 다 고려해서 풀어야하는 줄 알았는데 시간 제한을 보니 그렇게 풀 수 없는 문제였다. 다음에 생각해낸 방법은 dfs를 사용하는 것이다. dfs를 사용하면 ㅗ,ㅜ,ㅓ,ㅏ를 제외한 모든 모양을 만들어낼 수 있고, 그 중에서 최대값을 찾으면 된다. 4방탐색을 진행하며 sum에 map값을 더해준 값을 매개변수로 계속 전달하고, 그중에서 최대값을 찾는다. 그 외의 ㅗ,ㅜ,ㅓ,ㅏ는 각각의 범.. 2022. 9. 16. Queue를 활용해서 Stack을 만들기 저번 Stack을 활용해서 Queue만들기글을 참고하면, stack과 queue의 기본 구조에 대해서 이해할 수 있다. Stack을 활용해서 Queue만들기 (tistory.com) Stack을 활용해서 Queue만들기 Stack을 활용해서 Queue를 만들고, Queue를 활용해서 Stack을 만들기 위해서는 우선 Stack과 Queue에 대한 이해가 필요하다. 큐 큐는 한쪽 끝에서 삽입, 다른 쪽 끝에서 삭제 작업이 양쪽으로 이루어진다. sproutedpotato.tistory.com 큐는 선입 선출의 구조를, 스택은 후입 선출의 구조를 갖는다. 큐를 활용해서 스택만들기 큐활용해서 스택을 만들기 위해서는 두개의 큐가 필요하다. 아까와 같이 편의상 첫번째 큐를 q1, 두번째 큐를 q2라고 하겠다. pu.. 2022. 9. 15. Stack을 활용해서 Queue만들기 Stack을 활용해서 Queue를 만들고, Queue를 활용해서 Stack을 만들기 위해서는 우선 Stack과 Queue에 대한 이해가 필요하다. 큐 큐는 한쪽 끝에서 삽입, 다른 쪽 끝에서 삭제 작업이 양쪽으로 이루어진다. 삭제 연산은 프론트에서, 삽입 연산은 리어(rear)에서만 이루어지며, 삭제 연산을 디큐(dnQueue) 삽입 연산 인큐(enQueue)라고 한다. 큐는 선입선출의 구조를 가진다. BFS(넓이 우선 탐색)를 할 때 사용한다. 스택 스택은 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있고 top으로 정한 곳을 통해서만 접근가능하다. 스택은 후입선출의 구조를 가진다. DFS(깊이 우선 탐색)를 할 때 사용한다. 여기서 핵심은, 큐는 선입 선출의 구조를, 스택은 후입 선출의 구조.. 2022. 9. 15. [백준 JAVA]2636 치즈 문제 2636번: 치즈 (acmicpc.net) 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 풀이방법 우선 처음 생각했던 방법은 치즈입장에서(숫자가 1이라면) 1이아닌곳을 bfs를 돌리면서 숫자가 가장자리에 도달한다면 map을 0으로 바꿔주는 방법을 생각했다. 그렇게 푸니 답은 나오지만 메모리 초과가 떠서 조금 더 효율적으로 풀 수 있는 방법을 고민했다. 두번째로 생각해낸 방법은 굳이 치즈입장에서 생각하지말고, 가장자리에서 치즈쪽으로 bfs를 돌리다가 치즈가 나오면 map을 0으로 바꿔주는 방법을 생각했다. 근데 다시 생각해.. 2022. 9. 15. 이전 1 ··· 14 15 16 17 18 19 20 ··· 27 다음