목록반복문 (2)
tony9402
문제 : 별 찍기 - 11 이번에는 재귀, memcpy, memset, 배열을 안쓰고 오로지 반복문와 if문(삼항 연산자 포함)으로만 짤 수 있다는 것을 보여주겠다.좀있다 나올 규칙은 비트 연산 이외에 수학적인 계산으로 발견한 것이 아닌 우연히 발견한 것이다. 먼저, 띄어쓰기의 개수를 파악해보자. 아주 작은 삼각형에서 별이 3개씩 찍히므로 높이는 n / 3이다. 아래 경우에는 n이 24일 때를 보는 것이므로 높이는 24 / 3인 8이 된다. 높이가 1일땐 띄어쓰기의 개수는 n - h(h는 높이)이다. 그 다음은 작은 삼각형이 찍히는 부분과 그 사이에서 띄어쓰기를 하는 규칙을 찾아야한다. 이를 찾으려고 하기엔 너무 어렵긴 하다. 2차원 표에서 0부터 8까지의 각각 & (AND) 연산 한 결과를 표에다가 작..
문제 : 별찍기 - 11 이전 포스트에 규칙을 찾아 분할정복(재귀)로 푸는 방법을 해설했었다.이번엔 반복문 + memcpy를 이용해서 풀이를 해보겠다. 아주 작은 케이스를 계속 찍듯이 반복하면 된다. 1. 아주 작은 케이스의 별을 먼저 찍는다. 2. 그 다음의 크기의 별을 만들기 위해서 규칙을 찾아 해당하는 위치에 copy and paste를 한다. 3. 그 다음의 크기의 별을 만들었다면 그 별을 복사한다. 4. 똑같은 규칙으로 3번에서 복사한 별을 찍어나간다. 이를 원하는 크기의 별을 찍을때까지 반복하면 완성이다. 이러한 규칙을 가지고 문제를 풀면 아래와 같이 된다. chogahui05님이 memcpy, memset을 이용해서 풀었다는 얘기를 듣고 한번 규칙을 찾아 소스를 만들어 보았다. 자세한 설명은..