23055번: 공사장 표지판
신입생 백남이는 넓은 충남대학교를 돌아다니다 보니 건물을 새로 짓느라 공사를 하는 곳을 많이 보았다. 공사장은 위험한 요소들이 많아 백남이가 다칠 수도 있기 때문에 백남이가 들어가지
www.acmicpc.net
23055번 : 공사장 표지판
신입생 백남이는 넓은 충남대학교를 돌아다니다 보니 건물을 새로 짓느라 공사를 하는 곳을 많이 보았다.
공사장은 위험한 요소들이 많아 백남이가 다칠 수도 있기 때문에 백남이가 들어가지 못하도록 해야 한다.
백남이의 안전을 위해 출입제한 표지판을 만들어 주도록 하자.

입력
첫째 줄에 정수 N(1≤N≤20)이 주어진다.
출력
N×N 크기의 출입제한 표지판을 출력한다.

생각해 볼 점
이중 포문을 돌려서, 조건에 맞을 때에만 '*', 아니라면 ' '을 출력해주면 됩니다.
이중 포문의 좌표가 (i, j)라고 할 때
조건1 : i == j이다.
조건2 : i == 0 혹은 j == 0이다 (i * j == 0이다)
조건3 : i + j == N - 1이다
조건4 : i == N - 1 혹은 j == N - 1이다
코드
#include <iostream>
using namespace std;
int main()
{
int N;
cin >> N;
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
if(i * j == 0 || i == j || i + j == N - 1) printf("*");
else if(i == N -1 || j == N - 1) printf("*");
else printf(" ");
}
printf("\n");
}
return 0;
}
그 외
충남대학교 제 5회 생각하는 프로그래밍 대회 문제입니다.
제5회 생각하는 프로그래밍 대회 (acmicpc.net)
제5회 생각하는 프로그래밍 대회
www.acmicpc.net
'공부 및 정리 > 백준 코드' 카테고리의 다른 글
[C++]백준 - 23057번 문제 (0) | 2021.10.06 |
---|---|
[C++]백준 - 23056번 문제 (0) | 2021.10.05 |
[C++]백준 - 4195번 문제 (0) | 2021.10.04 |
[C++]백준 - 1976번 문제 (0) | 2021.10.04 |
[C++]백준 - 14003번 문제 (0) | 2021.09.28 |