![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxiS9w%2FbtsARUkpf5Z%2FsA7dGhoXu9Xa54QBz9WDh0%2Fimg.png)
1. 문제 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 테트로미노는 정사각형 4개를 이어 붙인 도형이다. 5개 뿐이다. 주어진 테트로미노를 대칭, 회전 시켜도 된다. 하나의 테트로미노를 놓을 때 얻을 수 있는 최대 수들의 합을 구한다. 2. 어떻게 풀까 결국에 모든 테트로미노를 하나씩 놓아서 구해야한다. 하지만 도형의 회전을 어떻게 구현해야할까? 회전에 따른 규칙을 찾아 이용하고자 했는데, 도저히 규칙을 찾을 수가 없었다! 그래서 우선 풀고봐야하니 변수에다 도형 정보들을 대칭 빼고 다 하드 코딩으로 박았다...
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2Ow8e%2FbtsATWgpdel%2FIivrHXerJAPmrkuN5plu2k%2Fimg.png)
1. 문제 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net i번째 숫자가 j번째에 도달할 수 있는지 출력한다. 가능하면 1, 불가능하면 0을 출력 2. 어떻게 풀까? 입력으로 주어지는 형식이 인접행렬일 뿐 결국 간선의 정보이다. 그러므로 평소 풀던것 처럼 `ArrayList []`를 생성하여 간선의 정보를 저장한 뒤, 1부터 N번째 숫자를 차례로 BFS 탐색을 진행하기로 했다. 만약 1을 시작으로 BFS 함수를 호출하면 1에서 다른 요소인 {2,3,4,5,6} 에 도달할 수 있는 탐색을 통해 알아낸다. // 1부터 N까지 각 BFS 탐색 ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmRm0L%2FbtsASeCorCf%2FxmFMZ1mmSewu1G2gOXyzvK%2Fimg.png)
1. 💎 문제 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 익은 토마토는 1일이 지나면 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 익힌다. 토마토가 모두 익을 때까지 최소 며칠이 걸리는지 출력한다. 모두가 익지 못하는 상황이면 -1을 출력하고 처음부터 모든 토마토가 익어있으면 0을 출력한다. 2. 🤔 어떻게 풀까 저번에 2차원 상자에 있는 유사한 토마토 문제를 풀어봐서 바로 BFS로 풀면되겠구나 하고 풀었다. 추가된 것은 바로 좌표가 3차원이 된 것! 그래서 3..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTn9ur%2FbtsAMkXn9S9%2FJY22e4mWGOV7GDTRz1LKG0%2Fimg.png)
1. 💎 문제 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 2. 🤔 어떻게 풀까 문제를 잘 읽어보면 달력에 표현되는 수는 x는 M으로 나눈 나머지, y는 N으로 나눈 나머지 값이다. 그러므로 입력으로 주어진 x,y가 몇 번째 해를 아는지 알기 위해서는 결국 아래 두 조건을 만족시키는 최소 공배수가 필요하다. M으로 나누었을 때 나머지가 x이다. N으로 나누었을 때 나머지가 y이다. 최소 공배수를 구하기 위해, x,y를 시작으로 각 M, N을 더해가면서 기존에 나왔던 수인지 비교한다. 비교하기 위해 `HashS..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQ9qZX%2FbtsAJ9g8NLb%2FTmlagEDOLeGkIG2rnw2ZC1%2Fimg.png)
1. 문제 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net 배열을 R번 회전 후 결과를 출력한다. 안쪽에서 회전이 안일어나는 경우는 가로나 세로의 크기 2보다 작을 때이다. 2. 풀이 생각 처음 봤을 때는 저번에 풀었던 달팽이 게임(참고: https://uzinlab.tistory.com/52 ) 문제랑 비슷해서, 전체적인 틀은 네 방향을 나눠서 각각 구현하기로 생각하였고, 구현 문제답게 코드를 짜기전에 열심히 구상을..