문제출처: https://www.acmicpc.net/problem/10996
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 차례대로 별을 출력한다.
풀이
별찍기를 풀 때 마다 느끼지만 재귀를 사용한 고난이도의 별찍기문제가 아닌이상 90%가 i,j를 이용한 연산만으로도 풀리는것같습니다.
즉, 별찍기를 어려워하는것은 아직 규칙성을 발견하여 코딩하는 연습이 부족하다는 것입니다.( 풀 때 마다 실력이 늡니다.) 문제를 살펴보면, 행의 갯수는 n*2, 한개의 열에 등장하는 공백+별의 갯수는 1~n개 라는 것을 알아야합니다. 그리고, 별이 찍히는 위치가 행마다 달라지는데, 행이 홀수냐 짝수냐에 따라, 그리고 그 때의 현재 열이 홀수냐 짝수냐에 따라 별과 공백의 위치가 엇갈리는 것을 확인할 수 있습니다. 코드로 옮기면 끝입니다.
코드
#include<iostream> using namespace std; int main() { int n; cin >> n; for (int i = 1; i <= n * 2; i++) { for (int j = 1; j <= n; j++) { if (i % 2 == 0) { if (j % 2 == 0) cout << "*"; else cout << " "; } else { if (j % 2 == 0) cout << " "; else cout << "*"; } } cout << endl; } }
결과
'문제풀이(BOJ) > 규칙찾기' 카테고리의 다른 글
[백준 3076] 상근이의 체스판 (0) | 2020.01.03 |
---|---|
[백준 1551] 수열의 변화 (0) | 2020.01.03 |
[백준 11312] 삼각 무늬-2 (0) | 2019.12.15 |
[백준 1834] 나머지와 몫이 같은 수 (0) | 2019.12.13 |
[백준 1964] 오각형,오각형,오각형... (0) | 2019.12.12 |