22-04-05-14499주사위굴리기
본문 바로가기
알고리즘 모음집/New 알고리즘

22-04-05-14499주사위굴리기

by KyeongMin 2022. 4. 5.
728x90
반응형

 

01.문제설계

02.문제풀이중 실수

  • 1,2,3,4 방향에 따른 주사위 의 순서 변경 누락함
  • 주사위를 먼저 이동 시킴 순서를 틀림
  • 이동칸이 0인 경우 주사위의 값을 복사하는 부분을 주사위의 값만 0으로 변경함

03.최종소스

#include<stdio.h>
#include<iostream>
using namespace std;
#define NS 21
#define MS 21
int board[NS][MS];
int ret;
int N, M, y, x, K;
int cube[7] = { 0, };//주사위 기록 초기 0
int dy[] = { 0,0,-1,1 };
int dx[] = { 1,-1,0,0 };
void init()
{
	scanf("%d %d %d %d %d", &N, &M, &y, &x, &K);
	for (int i = 0; i < N; i++) {
		for (int j = 0; j < M; j++) {
			scanf("%d", &board[i][j]);
		}
	}
}

void move(int dir) {
	if (dir == 0) {
		int copy = cube[1];
		cube[1] = cube[4];
		//cube[2] = cube[2];
		cube[4] = cube[6];
		cube[6] = cube[3];
		cube[3] = copy;
		//cube[5] = cube[5];
	}
	if (dir == 1)
	{
		int copy = cube[1];
		cube[1] = cube[3];
		//cube[2] = cube[2];
		cube[3] = cube[6];
		cube[6] = cube[4];
		cube[4] = copy;
		//cube[5] = cube[5];
	}
	if (dir == 2)
	{
		int copy = cube[1];
		cube[1] = cube[5];
		cube[5] = cube[6];
		cube[6] = cube[2];
		cube[2] = copy;
		//cube[3] = cube[3];
		//cube[4] = cube[4];

	}
	if (dir == 3)
	{
		int copy = cube[1];
		cube[1] = cube[2];
		cube[2] = cube[6];
		cube[6] = cube[5];
		cube[5] = copy;
		//cube[3] = cube[3];
		//cube[4] = cube[4];
	
	}
}

void play()
{
	int dir = 0;
	//1.이동하기
	//2. 이동한 칸에 0 이면 주사위 숫자를 칸에 복사
	//2.1 0이 아닌경우 칸의 숫자를 주사위로 복사, 그 칸의 숫자는 0으로 초기화
	//3.바깥으로는 이동안됨 나가려는 경우 명령 무시
	for (int k = 0; k < K; k++) {
		scanf("%d",&dir);
		dir--;
		int ny = y+dy[dir]; int nx =x+ dx[dir];
		if (ny < 0 || ny >= N || nx < 0 || nx >= M)continue;
		move(dir);//주사위 위치 변경

		if (board[ny][nx] == 0) {
			board[ny][nx] = cube[6];
		}
		else if (board[ny][nx] != 0) {
			cube[6] = board[ny][nx];
			board[ny][nx] = 0;
		}
		y = ny; x = nx;
		cout << cube[1] << " ";
	}
}

int main(void)
{
	init();
	play();
	return 0;
}

 

https://github.com/3DPIT/study/blob/master/02.studyData/10.Algorithm/2022/%EB%B0%B1%EC%A4%80%EC%BD%94%ED%85%8C/Algorithm/2022/04/0405/22-04-05-14499%EC%A3%BC%EC%82%AC%EC%9C%84%EA%B5%B4%EB%A6%AC%EA%B8%B0.md

 

GitHub - 3DPIT/study

Contribute to 3DPIT/study development by creating an account on GitHub.

github.com

 

728x90
반응형

'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글

22-04-11-14503-로봇청소기  (0) 2022.04.11
22-04-09-14502-연구소  (0) 2022.04.10
22-04-04-3190-뱀  (0) 2022.04.04
22.04.02_12100_2048Easy  (0) 2022.04.03
22.02.08_퀵소트  (0) 2022.02.09

댓글