Beginner
2024-04-23골뱅이 찍기 - 돌아간 ㅍ
주어진 셀의 크기 N에 대해 골뱅이를 돌아간 ㅍ 모양으로 출력하는 함수 구현하기
#99일지#99클럽#TIL#개발자스터디#코딩테스트#항해
직접 풀러가기문제 설명
서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 반시계 방향으로 90도 돌아간 ㅍ자 모양의 골뱅이가 들어있다. 돌아간 ㅍ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. 상자에는 정사각형 모양의 셀의 크기를 나타내는 숫자 하나가 적혀있다. 셀의 크기 N이 주어지면 예제 출력과 같은 방식으로 골뱅이 모양을 출력하시오.
제한 사항
- 첫째 줄에 정수 N(1 ≤ N ≤ 100)이 주어진다.
입출력 예시
# 1. N = 1
@ @
@@@@@
@ @
@@@@@
@ @
# 2. N = 3
@@@ @@@
@@@ @@@
@@@ @@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@ @@@
@@@ @@@
@@@ @@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@ @@@
@@@ @@@
@@@ @@@
풀이
- 입력 받은 N을 int로 변환한다.
- ㅍ 모양이 가로 및 세로로 각각 5개의 셀로 구성되어 있으므로, 5x5 의 그리드를 생성한다.
-
5 x 5를 기준으로
@가 채워지는 부분의 인덱스를 구한다. -
5 x 5의 그리드를 채우기 위해, 5 x 5로 반복해야 하고, N이 1이 아닌 경우, 해당 셀을 모두
@로 채우기 위해, 셀마다 N번의 반복이 추가적으로 필요하다. -
각 셀마다 filled_cells 와 동일한 index인지 확인해서
@또는‘ ‘을 출력한다.
위의 풀이를 Python로 작성하면 아래와 같다.
Python
N = int(input().strip())
filled_cells = [{0, 4}, {0, 1, 2, 3, 4}, {0,4}, {0,1,2,3,4}, {0,4}]
for row in range(5):
for _ in range(N):
for col in range(5):
if col in filled_cells[row]:
print('@' * N, end = '')
else:
print(' ' * N, end = '')
print()