22-04-18-15685-드래곤커브
본문 바로가기
알고리즘 모음집/New 알고리즘

22-04-18-15685-드래곤커브

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

01.드래곤방향저장

		for (int i = 0; i < g; i++) {
			for (int j = dragonDir.size() - 1; j >= 0; j--) {
				int dir = dragonDir[j] + 1;
				if (dir == 4) dir = 0;
				dragonDir.push_back(dir);//90도 회전 저장
			}
		}
  • 이문제의 핵심
    • 그냥 저장되어있는 방향 거꾸로 돌면서 90도해서 다시 저장하면됨

02.정사각형 개수 세기

void squareCheck() {
	for (int i = 0; i < 100; i++) {
		for (int j = 0; j < 100; j++) {
			if (board[i][j] == 1 && board[i][j + 1] == 1 && board[i + 1][j] == 1 && board[i + 1][j + 1] == 1) {
				ret++;
			}
		}
	}
}

03.전체소스

#include<stdio.h>
#include<iostream>
#include<vector>
using namespace std;
int N, ret;
int dy[] = { 0,-1,0,1 };
int dx[] = { 1,0,-1,0 };
int board[104][104];
void init()
{
	N = ret = 0;
	scanf("%d", &N);
}

void squareCheck() {
	for (int i = 0; i < 100; i++) {
		for (int j = 0; j < 100; j++) {
			if (board[i][j] == 1 && board[i][j + 1] == 1 && board[i + 1][j] == 1 && board[i + 1][j + 1] == 1) {
				ret++;
			}
		}
	}
}
void dragonCurve() {
	for (int n = 0; n < N; n++) {
		vector<int>dragonDir;
		int x, y, d, g;
		scanf("%d %d %d %d", &x, &y, &d, &g);
		dragonDir.push_back(d);
		for (int i = 0; i < g; i++) {
			for (int j = dragonDir.size() - 1; j >= 0; j--) {
				int dir = dragonDir[j] + 1;
				if (dir == 4) dir = 0;
				dragonDir.push_back(dir);//90도 회전 저장
			}
		}
		board[y][x] = 1;

		//배열에 기록 남기기
		for (int j = 0; j < dragonDir.size(); j++) {
			int ny = y + dy[dragonDir[j]];
			int nx = x + dx[dragonDir[j]];
			board[ny][nx] = 1;
			y = ny; x = nx;
		}
	}
	squareCheck();
}

int main(void)
{
	init();
	dragonCurve();
	printf("%d\n", ret);
	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/0418/22-04-18-15685-%EB%93%9C%EB%9E%98%EA%B3%A4%EC%BB%A4%EB%B8%8C.md

 
728x90
반응형

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

2022-04-21-16234-인구이동  (0) 2022.04.21
22-04-18-15686-치킨배달  (0) 2022.04.18
22-04-17-15684-사다리조작  (0) 2022.04.17
22-04-17-15683-감시  (0) 2022.04.17
22-04-14-14891-톱니바퀴  (0) 2022.04.17

댓글