본문 바로가기

알고리즘 문제

[C/C++ 백준 1262번] 알파벳 다이아몬드 (Silver 3)

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

 

1262번: 알파벳 다이아몬드

문제 알파벳 다이아몬드는 정수 길이의 마름모가 여러 개 누적되는 모양이다. 각각의 마름모는 하나의 알파벳 소문자로 그리며, a로 시작해서 z로 끝난다. (가운데에서부터) 그리고, z 이후에는 �

www.acmicpc.net

같은 패턴이 반복되므로, 한 패턴만 보고 규칙을 찾자. 전의 색칠 문제와 비슷하게 대칭시켜서 생각하면 생각보다 쉽게 풀 수 있는 문제이다.

 

#include <cstdio>
int main(void){
	int N, R1, C1, R2, C2,i1,j1;
	scanf("%d %d %d %d %d",&N,&R1,&C1,&R2,&C2);
	for(int i=R1; i<=R2; i++){
		for(int j=C1; j<=C2; j++){
			i1 = i % (2*N-1);
			j1 = j % (2*N-1);
			if(i1>N-1)
				i1 = 2*N - 2 - i1;
			if(j1>N-1)
				j1 = 2*N - 2 - j1;
			if(i1+j1<N-1)
				printf(".");
			else
				printf("%c",97+(2*N-2-(i1+j1))%26);
		}
		printf("\n");
	}
}