알고리즘 풀이/백준(Boj)

백준(BOJ) 1022번 소용돌이 예쁘게 출력하기

100win10 2020. 4. 14. 12:40

문제 : https://www.acmicpc.net/problem/1022

 

1022번: 소용돌이 예쁘게 출력하기

첫째 줄에 r1, c1, r2, c2가 주어진다. 모두 절댓값이 5000보다 작거나 같은 정수이고, r2-r1은 0보다 크거나 같고, 49보다 작거나 같으며, c2-c1은 0보다 크거나 같고, 4보다 작거나 같다.

www.acmicpc.net

 

풀이 :

 

1.r2-r1은 0보다 크거나 같고, 49보다 작거나 같으며, c2-c1은 0보다 크거나 같고, 4보다 작거나 같으니

 

board배열은 [50][5]로 처리하자.

 

2.while문은 네 꼭짓점이 모두 0이 아닐 때까지 계속된다.

 

3. y 에다 r1를 빼고 x에다 c1을 뺀 것을 처음 값으로 두자. 예제와 같이 (0-(-3), 0-(-3))으로 (3,3)이 첫 스타트가

 

되는 것처럼 말이다.

 

4. 이제 이 y-r1과 x-c1이 해당 범위 안에 있는 경우에만 출력해주자.

 

5. 방향은 cnt가 dcnt를 만날 때만 틀도록 하며 왼쪽이나 오른쪽으로 트는 경우는 커지는 소용돌이를 구현해야 되기에

 

목적지 dcnt를 1 늘려주어야 한다.

 

 

 

코드 ( C++ )