www.acmicpc.net/problem/15685

 

15685번: 드래곤 커브

첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커

www.acmicpc.net

 

 

[난이도] Gold4

[유형] 시뮬레이션 (삼성SW기출)

 

[풀이]

시키는대로 하자

 

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int dy[4] = {0,-1,0,1};
int dx[4] = {1,0,-1,0};
int N;
bool map[102][102];
int main(){
scanf("%d",&N);
for(int dc=0;dc<N;dc++){
int x,y,d,g;
scanf("%d%d%d%d",&x,&y,&d,&g);
vector<int> seq(1);
for(int i=0;i<g;i++){
int sz = seq.size();
for(int j=sz-1;j>=0;j--) seq.push_back((seq[j]+1)%4);
}
map[y][x] = 1;
for(int v : seq) {
v=(v+d)%4;
y+=dy[v];
x+=dx[v];
map[y][x] = 1;
}
}
int ans = 0;
for(int i=0;i<100;i++){
for(int j=0;j<100;j++){
if(map[i][j]&&map[i+1][j]&&map[i+1][j+1]&&map[i][j+1]) ans++;
}
}
printf("%d",ans);
}

github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Gold4/15685.cpp

 

+ Recent posts