디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

백준 14503번 로봇 청소기

개발뉴비갤로그로 이동합니다. 2023.01.04 01:54:20
조회 95 추천 0 댓글 0
														

https://www.acmicpc.net/problem/14503

 


#include <stdio.h>
const int x[] = {0, -1, 0, 1};
const int y[] = {-1, 0, 1, 0};
int main() {
int N, M, r, c, d, room[52][52] = {0,}, ans = 0;
scanf("%d %d", &N, &M);
scanf("%d %d %d", &r, &c, &d);
for (int n=1; n<=N; n++) {
for (int m=1; m<=M; m++) {
scanf("%d", &room[n][m]);
room[n][m] ^= 1;
} // 0 : wall, 1 : empty, 2 : cleaned
}
r++;
c++;
while (1) {
if (room[r][c] == 1) {
room[r][c] = 2;
ans++;
} // condition 1
if (room[r+x[0]][c+y[0]]-1 && room[r+x[1]][c+y[1]]-1 && room[r+x[2]][c+y[2]]-1 && room[r+x[3]][c+y[3]]-1) {
if (room[r+x[(d+3)%4]][c+y[(d+3)%4]]==0) break;
r+=x[(d+3)%4];
c+=y[(d+3)%4];
} // condition 2-3 & 2-4
else if (room[r+x[d]][c+y[d]]%2 == 0) {
d=(d+3)%4;
} // condition 2-2
else {
r+=x[d];
c+=y[d];
d=(d+3)%4;
} // condition 2-1
}
printf("%d", ans);
}

구현 문제라서 그냥 시키는대로 구현을 하면 된다.

실수만 안 하면 되는데 실수가 나오기 좋은 문제인거 같아.


visit 배열을 굳이 만들 필요가 없어서 청소한 곳은 2로 바꿔줬어.

r+=x[d]; c+=y[d]; 하면 왼쪽 이동이고

r+=x[(d+3)%4]; c+=y[(d+3)%4]; 하면 뒤로 이동

d=(d+3)%4; 가 좌회전


0, 1 반전한 이유 :

1. 전부 0으로 초기화한 room 배열의 범위 밖의 0들을 벽으로 쓰고 싶음

2. %2 취하면 0되는 0, 2는 방문불가, 1은 방문가능으로 쓰고 싶음

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 2025년 가장 기억에 남는 인터넷 이슈는? 운영자 25/12/22 - -
333 3355. Zero Array Transformation I 흑화뉴비갤로그로 이동합니다. 05.20 53 0
332 2918. Minimum Equal Sum of Two Arrays Af 흑화뉴비갤로그로 이동합니다. 05.10 21 0
331 2033. Minimum Operations to Make a Uni-V 흑화뉴비갤로그로 이동합니다. 03.28 45 0
330 2401. Longest Nice Subarray 흑화뉴비갤로그로 이동합니다. 03.19 40 0
329 1079. Letter Tile Possibilities 흑화뉴비갤로그로 이동합니다. 02.18 45 0
328 1718. Construct the Lexicographically La 흑화뉴비갤로그로 이동합니다. 02.16 29 0
327 1910. Remove All Occurrences of a Substr 흑화뉴비갤로그로 이동합니다. 02.11 31 0
326 2381. Shifting Letters II 흑화뉴비갤로그로 이동합니다. 01.05 43 0
323 2471. Minimum Number of Operations to So 흑화뉴비갤로그로 이동합니다. 24.12.25 31 0
322 773. Sliding Puzzle 흑화뉴비갤로그로 이동합니다. 24.11.27 30 0
321 3243. Shortest Distance After Road Addit 흑화뉴비갤로그로 이동합니다. 24.11.27 23 0
320 1233. Remove Sub-Folders from the Filesy 흑화뉴비갤로그로 이동합니다. 24.10.29 30 0
319 2684. Maximum Number of Moves in a Grid 흑화뉴비갤로그로 이동합니다. 24.10.29 31 0
318 2501. Longest Square Streak in an Array 흑화뉴비갤로그로 이동합니다. 24.10.29 43 0
317 3043. Find the Length of the Longest Com 흑화뉴비갤로그로 이동합니다. 24.09.24 38 0
316 1514. Path with Maximum Probability 흑화뉴비갤로그로 이동합니다. 24.08.27 38 0
315 264. Ugly Number II 흑화뉴비갤로그로 이동합니다. 24.08.19 35 0
314 2285. Maximum Total Importance of Roads 흑화뉴비갤로그로 이동합니다. 24.06.28 48 0
313 1552. Magnetic Force Between Two Balls 흑화뉴비갤로그로 이동합니다. 24.06.20 38 0
312 1482. Minimum Number of Days to Make m B 흑화뉴비갤로그로 이동합니다. 24.06.19 41 0
311 523. Continuous Subarray Sum 흑화뉴비갤로그로 이동합니다. 24.06.09 41 0
310 리트코드 갤러리 5월 이벤트 우승자 공지 [1] 진척갤로그로 이동합니다. 24.06.08 65 0
309 1208. Get Equal Substrings Within Budget 흑화뉴비갤로그로 이동합니다. 24.05.28 41 0
308 1608. Special Array With X Elements Grea 흑화뉴비갤로그로 이동합니다. 24.05.28 33 0
307 552. Student Attendance Record II 흑화뉴비갤로그로 이동합니다. 24.05.28 32 0
306 2597. The Number of Beautiful Subsets [1] 흑화뉴비갤로그로 이동합니다. 24.05.24 57 0
305 78. Subsets 흑화뉴비갤로그로 이동합니다. 24.05.21 32 0
304 1863. Sum of All Subset XOR Totals 흑화뉴비갤로그로 이동합니다. 24.05.21 36 0
302 1325. Delete Leaves With a Given Value 흑화뉴비갤로그로 이동합니다. 24.05.18 37 0
301 2331. Evaluate Boolean Binary Tree 흑화뉴비갤로그로 이동합니다. 24.05.18 28 0
298 3075. Maximize Happiness of Selected Chi 흑화뉴비갤로그로 이동합니다. 24.05.12 25 0
297 786. K-th Smallest Prime Fraction 흑화뉴비갤로그로 이동합니다. 24.05.12 29 0
296 506. Relative Ranks 흑화뉴비갤로그로 이동합니다. 24.05.08 38 0
295 2816. Double a Number Represented as a L 흑화뉴비갤로그로 이동합니다. 24.05.08 25 0
294 2487. Remove Nodes From Linked List 흑화뉴비갤로그로 이동합니다. 24.05.06 26 0
293 79. Word Search o오어o(14.37) 24.05.04 29 0
292 45. Jump Game II o오어o(14.37) 24.05.04 35 0
291 881. Boats to Save People o오어o(14.37) 24.05.04 29 0
290 2441. Largest Positive Integer That Exis 흑화뉴비갤로그로 이동합니다. 24.05.02 28 0
289 2997. Minimum Number of Operations to Ma 흑화뉴비갤로그로 이동합니다. 24.05.01 25 0
288 2000. Reverse Prefix of Word 흑화뉴비갤로그로 이동합니다. 24.05.01 34 0
287 리트코드 갤러리 5월 이벤트 공지 [3] 진척갤로그로 이동합니다. 24.04.28 97 0
282 백준 1260. DFS와 BFS 차근차근춘식이(211.234) 24.04.23 47 0
277 206. Reverse Linked List 흑화뉴비갤로그로 이동합니다. 24.03.21 48 0
276 1669. Merge In Between Linked Lists 흑화뉴비갤로그로 이동합니다. 24.03.20 30 0
275 57. Insert Interval 흑화뉴비갤로그로 이동합니다. 24.03.18 31 0
274 2485. Find the Pivot Integer 흑화뉴비갤로그로 이동합니다. 24.03.13 25 0
273 1750. Minimum Length of String After Del 흑화뉴비갤로그로 이동합니다. 24.03.06 26 0
272 451. Sort Characters By Frequency 흑화뉴비갤로그로 이동합니다. 24.02.07 40 0
271 49. Group Anagrams 흑화뉴비갤로그로 이동합니다. 24.02.06 35 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2