반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- NGINX
- 도커
- kubernetes
- 운영체제
- 데브옵스
- swift 클로저
- centOS
- 리눅스
- 인프라
- 쿠버네티스
- 부스트코스
- docker
- C++
- devops
- k8s
- centOS7
- linux
- 네트워크
- 프로세스
- boj
- 도커 명령어
- AWS
- 클라우드
- 도커 이미지
- Python
- 도커 컨테이너
- ios
- os
- 컨테이너
- Swift
Archives
- Today
- Total
귀염둥이의 메모
[백준] 14499번: 주사위 굴리기 (C++) 본문
반응형
14499번: 주사위 굴리기
첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도
www.acmicpc.net
주사위를 배열 v와 h를 통해서 표현했다.
명령에 따라서 v와 h를 규칙에 맞게 적절히 업데이트하며 조건에 맞게 코드를 작성했다.
소스코드
#include <bits/stdc++.h>
using namespace std;
int n, m, x, y, k;
int g[20][20];
int d[5][2] = {{0, 0}, {0, 1}, {0, -1}, {-1, 0}, {1, 0}};
int v[4];
int h[3];
queue<int> cmd;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m >> x >> y >> k;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> g[i][j];
for (int i = 0; i < k; i++) {
int c; cin >> c;
cmd.push(c);
}
while(!cmd.empty()) {
int c = cmd.front(); cmd.pop();
int nx = x + d[c][0];
int ny = y + d[c][1];
if (nx < 0 || nx >= n || ny < 0 || ny >= m) continue;
int tmp = v[3]; // v[3]은 주사위 밑바닥, v[1]과 h[1]은 주사위 윗면
switch (c) {
case 1:
v[3] = h[2];
h[2] = h[1];
h[1] = h[0];
h[0] = tmp;
v[1] = h[1];
break;
case 2:
v[3] = h[0];
h[0] = h[1];
h[1] = h[2];
h[2] = tmp;
v[1] = h[1];
break;
case 3:
v[3] = v[0];
v[0] = v[1];
v[1] = v[2];
v[2] = tmp;
h[1] = v[1];
break;
case 4:
v[3] = v[2];
v[2] = v[1];
v[1] = v[0];
v[0] = tmp;
h[1] = v[1];
break;
}
x = nx; y = ny;
if (g[x][y] == 0) g[x][y] = v[3]; // 지도가 0일 때
else { // 0이 아님
v[3] = g[x][y];
g[x][y] = 0;
}
cout << v[1] << '\n';
}
return 0;
}
반응형
'CS > 백준' 카테고리의 다른 글
[백준] 14891번: 톱니바퀴 (C++) (1) | 2021.04.04 |
---|---|
[백준] 14502번: 연구소 (C++) (0) | 2021.04.03 |
[백준] 2468번: 안전 영역 (C++) (0) | 2021.04.02 |
[백준] 14503번: 로봇 청소기 (C++) (0) | 2021.03.31 |
[백준] 17144번: 미세먼지 안녕! (C++) (0) | 2021.03.30 |
Comments