Notice
Recent Posts
Recent Comments
tony9402
[백준 2448] 별 찍기 - 11 (풀이 3) 본문
반응형
문제 : 별 찍기 - 11
이번에는 재귀, memcpy, memset, 배열을 안쓰고 오로지 반복문와 if문(삼항 연산자 포함)으로만 짤 수 있다는 것을 보여주겠다.
좀있다 나올 규칙은 비트 연산 이외에 수학적인 계산으로 발견한 것이 아닌 우연히 발견한 것이다.
먼저, 띄어쓰기의 개수를 파악해보자. 아주 작은 삼각형에서 별이 3개씩 찍히므로 높이는 n / 3이다. 아래 경우에는 n이 24일 때를 보는 것이므로 높이는 24 / 3인 8이 된다. 높이가 1일땐 띄어쓰기의 개수는 n - h(h는 높이)이다.
그 다음은 작은 삼각형이 찍히는 부분과 그 사이에서 띄어쓰기를 하는 규칙을 찾아야한다. 이를 찾으려고 하기엔 너무 어렵긴 하다.
2차원 표에서 0부터 8까지의 각각 & (AND) 연산 한 결과를 표에다가 작성한 결과이다.
여기서 신기한 규칙을 발견했는데 보기 쉽게 0이면 초록색으로 0이외의 값은 빨간색으로 칠해보았다.
파란색으로 둘러싼 부분을 잘 보면 어디서 많이 본 듯한 모양이였다. 이를 제대로 비교해보기 위해 오른쪽으로 45도 돌려보자.
45도 돌려보면 아래 사진과 같다. 그 모양은 아까 봤던 그 삼각형의 모양이다!!! 앞과 뒤에 뛰어쓰기 개수의 규칙을 알아내기엔 쉬우므로 간격을 잘 맞춰 띄어쓰기를 출력하면 되고 나머지엔 &연산을 이용하여 True면 띄어쓰기를, False면 삼각형을 출력하는 프로그램을 만들면 된다.
반응형
'알고리즘 > Baekjoon Online Judge' 카테고리의 다른 글
백준 3025 돌 던지기 (0) | 2020.09.04 |
---|---|
[백준 16939] 2x2x2 큐브 (0) | 2020.05.02 |
[백준 2448] 별찍기 - 11 (분할정복 x) (0) | 2019.03.18 |
[백준 2448] 별 찍기-11 (3) | 2019.03.15 |
[백준 9657] 돌 게임 3 (0) | 2019.01.25 |
Comments