소개:
무당 벌레에 대해 생각할 때 일반적으로 검은 반점이있는 빨간색 또는 어두운 주황색 버그를 생각합니다. 이것이 반드시 필요한 것은 아니지만, 빨강 / 주황색 점이있는 무당 벌레가있는 검은 색 이나 점이없는 무당 벌레 가 있기 때문에 , 우리는 주로이 아시아 무당 벌레와 같은 무당 벌레를 묘사합니다.
주목해야 할 또 다른 점은 무당 벌레의 반점이 거의 항상 대칭이라는 것입니다. 그리고이 도전이 시작됩니다.
도전:
정수 n
( >= 0
)가 주어지면 다음 ASCII 아트 무당 벌레를 한 번 또는 여러 번 출력합니다. 대칭 점은 두 개 이상의 무당 벌레뿐만 아니라 두면 사이에 균등하게 나뉘어 있습니다.
기본 무당 벌레 레이아웃은 다음과 같습니다.
_V_
/(@I@)\
/ | \
| | |
\ | /
''-!-''
인 경우 n=0
무당 벌레를 그대로 출력합니다.
경우 n
0보다 큰 경우, 우리는 중 하나를 소문자로 ASCII 최신 버그의 공간을 채우 o
거나 교체 |
자본과 중앙에 O
. 목표는 n
'빈'무당 벌레를 변경하는 동시에 여전히 무당 벌레 당 대칭 출력을 생성하고 가능한 적은 무당 벌레를 출력하는 것입니다.
유효한 출력 n=1
은 다음과 같습니다.
_V_
/(@I@)\
/ O \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| | |
\ O /
''-!-''
그러나 이것은 유효하지 않습니다.
_V_
/(@I@)\
/ | \
| o | |
\ | /
''-!-''
유효한 출력 n=2
은 다음과 같습니다.
_V_
/(@I@)\
/ O \
| O |
\ | /
''-!-''
_V_
/(@I@)\
/ O \
| | |
\ O /
''-!-''
_V_
/(@I@)\
/ o|o \
| | |
\ | /
''-!-''
_V_
/(@I@)\
/ | \
| o | o |
\ | /
''-!-''
etc. There are a lot of possible outputs.
n
더 이상 단일 무당 벌레에 맞지 않는 첫 번째 는 n=24
입니다. 이 경우 가능한 한 균등하게 두 개의 무당 벌레로 나눠야합니다 (선택적으로 하나의 공백 또는 하나의 줄 바꿈을 사용하여 서로 옆에 또는 서로 아래로 출력할지 여부를 선택할 수 있음). 예를 들면 다음과 같습니다.
_V_ _V_
/(@I@)\ /(@I@)\
/o o|o o\ /o o|o o\
|o o | o o||o o | o o|
\o o|o o/ \o o|o o/
''-!-'' ''-!-''
또는:
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
_V_
/(@I@)\
/ooo|ooo\
| | |
\ooo|ooo/
''-!-''
도전 규칙 :
n
의 범위 내에 있습니다0-1000
.- STDOUT으로 출력하거나 문자열 또는 2D 문자 배열 / 목록 등으로 반환하도록 선택할 수 있습니다.
- 선행 줄 바꿈 또는 불필요한 공백은 허용되지 않습니다. 후행 공백과 단일 후행 줄 바꿈이 허용됩니다.
- 위에서 언급했듯이 두 개 이상의 무당 벌레가 필요할 때 서로 옆에 또는 서로 아래에 (또는 둘을 혼합하여) 출력할지 여부를 선택할 수 있습니다.
- 두 개 이상의 무당 벌레가 나란히 인쇄되면 그 사이에 하나의 선택적 공백이 허용됩니다. 두 개 이상의 무당 벌레가 서로 인쇄되면 그 사이에 하나의 선택적 개행이 허용됩니다.
- 대칭적이고 input과 동일한 한 시퀀스의 모든 단계에서 무당 벌레의 레이아웃을 선택할 수 있습니다
n
. - 목표는
n
가능한 한 많은 무당 벌레를 변경하고 변경하는 것이므로 위의 경우 하나 이상의 무당 벌레를 사용하기 시작n=23
합니다. 이 무당 벌레의 레이아웃이 동일 할 필요는 없습니다. 실제로, 이것은 두 개의 입력과 같은n=25
또는 일부 입력에 대해서는 불가능합니다n=50
. - 또한 때때로 두 개 이상의 무당 벌레 사이에 점을 고르게 분할 할 수 없습니다. 이 경우 가능한 한 균등하게 분할해야하며 최대 차이는 1입니다.
따라서 n=50
마지막 두 규칙을 염두에두면 유효한 출력이됩니다 (첫 번째 버그에는 16 개의 스팟이 있고 다른 두 개에는 17 개의 스팟이 있습니다).
_V_ _V_ _V_
/(@I@)\ /(@I@)\ /(@I@)\
/oooOooo\ / O \ /o oOo o\
|ooooOoooo||ooooOoooo||o ooOoo o|
\ | / \oooOooo/ \o oOo o/
''-!-'' ''-!-'' ''-!-''
일반적인 규칙:
o
하고 O
대신. 나는 문구를 조금 바꾸었다.
n=50
들어, 첫 번째 버그에는 16 개의 스팟이 있고 나머지 두 개에는 각각 17 개의 스팟이 있다고 생각합니다.