본문 바로가기

분류 전체보기107

[구현] 백준 20061: 모노미노도미노 2 이번 문제도 엄청 길어서 캡처 대신 링크로 갈음한다. 20061번: 모노미노도미노 2 (acmicpc.net) 20061번: 모노미노도미노 2 모노미노도미노는 아래와 같이 생긴 보드에서 진행되는 게임이다. 보드는 빨간색 보드, 파란색 보드, 초록색 보드가 그림과 같이 붙어있는 형태이다. 게임에서 사용하는 좌표 (x, y)에서 x는 행, www.acmicpc.net 어제 새벽 서너시까지 잡고 풀었는데, 문제가 딱히 되짚을 게 없다... 그냥 빡구현이다. 채워넣고, 조건 맞으면 점수 올리고, 연하게 색칠된 특별 구역에 들어가면 그만큼 내려주고... 만 반복하면 된다. 어차피 빨강 배열은 볼 필요가 없다. 초록 배열, 파랑 배열만 가지고 작업하면 된다. 어떤 블록을 넣어줄지 지정해주는 t, 배열이 들어갈 인덱.. 2022. 7. 27.
[구현] 백준 14503: 로봇 청소기 오늘은 밀린 만큼 두 개를 복기하려 한다. 첫 번째 복기 대상 로봇 청소기이다. 14503번: 로봇 청소기 (acmicpc.net) 참고로, 북쪽의 왼쪽은 서쪽이다. 왜 너무 당연한 이런 얘기를 썼냐면... 북동남서 순으로 0,1,2,3이 배정되어 있기 때문이다. 나는 북쪽의 왼쪽->0의 다음은 1 .. 이렇게 멋대로 생각하다가 꽤나 삽질을 했다... 한 칸 씩 네 방향을 서치할 수 있게 dr, dc 배열과, 중간에 청소를 안 한 부분을 발견하여 빠져나갈 때 재귀호출의 '방향' 인풋으로 사용하기 위해 directions 배열을 만들었다. public class BOJ_14503 { static int N,M; static int[][] board; static int numCleaned = 0; //북-.. 2022. 7. 27.
[구현] 백준 20327: 배열 돌리기 6 여태 깨작깨작 PS를 하면서 어려운 문제들을 많이 만났다. 개중에는 지금 돌아보면 아무 것도 아닌 문제도 있지만,그 때는 또 그만큼 실력이 더 모자랐기 때문에... 브론즈 I/O 문제조차 당황하며 하루 종일 잡고 있던 때가 있었으니. 그런데 이 문제만큼 '볼륨'이 크다고 느낀 문제는 처음이었다. 보자마자 아, 그냥 튈까 하고 생각했지만 결국 극복해내지 못하면 다음 단계로 나아가지 못하기에 차분히 손을 댔다. 20327번: 배열 돌리기 6 (acmicpc.net) // 문제 예시가 너무 길어 링크로 첨부 아직 완전한 리뷰가 아니기에 간단하게만 쓰면, 배열의 부분배열들을 변경시키는 함수 8개를 구현해야 한다. 상하반전, 좌우반전, 우로 90도/좌로 90도 회전, 그리고 똑같은 논리로 '부분배열 자체'를 이동.. 2022. 7. 22.
[구현] 백준 16927: 배열 돌리기 2 앞으로 매일매일 포스팅을 하기로 했지만, 계절학기가 바빠지고 개인적인 일들이 생기면서 한참만에 포스팅을 한다. 우선 배열을 한 칸씩 반시계 방향으로 미루는 방법을 먼저 고안해야 했는데, 나는 큐를 만들어 그 큐에 배열의 테두리 값을 다 밀어넣고, 한 칸씩 미뤄서 큐를 이용해 다시 채워넣는 방식을 택했다. Queue q = new LinkedList(); //좌변 for(int i=init;i=init+1;i--){ q.offer(targetArr[init][i]); } //한 칸 씩 미뤄서 큐에 있는 값들을 밀어넣음. //좌변 for(int i=init+1;i=init;i--){ targetArr[init][i] = q.poll(); } 이렇게만 만들고 채점을 돌렸을 때 시간초과가 떴는데, 이 문제의 핵.. 2022. 7. 20.