반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
1. readline과 int나 float를 사용하는 입력 방식
readline을 사용해서 입력할 때는 맨 끝에 \n이 붙어서 입력됩니다.
하지만, 입력한 값을 int나 float으로 처리해 정수, 실수형으로 만들어 줄 때는
굳이 \n을 떼기 위해 rstrip을 사용할 필요가 없습니다.
숫자 형태를 만들어줄 때 자동으로 사라집니다.
num = int(sys.stdin.readline())
예제 설명
1. 첫 번째 예제
- 입력
3
- 출력
***
* *
***
- 설명
입력한 사각형의 길이 n은 3입니다.
사각형의 첫 줄, 마지막 줄에는 별 *들을 n개만큼 출력합니다.
중간의 줄들에는 한 줄의 처음과 마지막에만 별을 출력하고 가운데는 공백을 출력해서
가운데가 비어있는 사각형 모양을 출력합니다.
생각한 풀이 과정
n >= 3인 사각형의 길이 n을 입력합니다.
n = int(stdin.readline())
- 반복문 시작
출력할 사각형은 n줄이므로 n번 반복하는 반복문을 만듭니다.
for num in range(n):
사각형의 첫 번째 줄이거나 마지막 줄이라면, 별 *를 n개만큼 출력합니다.
if num == 0 or num == n - 1:
print('*' * n)
그 외의 경우인 중간 줄이라면, 처음과 마지막에 별을 하나 출력하고,
중간에 공백을 n-2개만큼 출력하고 다음 줄로 내리지 않습니다.
else:
print('*', end='')
print(' ' * (n - 2), end='')
print('*')
- 반복문 끝
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 길이 n을 입력합니다.
# n >= 3
# int형으로 변환합니다.
n = int(stdin.readline())
# n번 반복하는 반복문을 만듭니다.
for num in range(n):
# 사각형의 첫 번째 줄이거나 마지막 줄이라면
if num == 0 or num == n - 1:
# 별 *를 n개만큼 반복해서 출력합니다.
print('*' * n)
# 그 외의 경우
else:
# 처음 별 *를 하나 출력하고, 다음 줄로 내리지 않습니다.
print('*', end='')
# 공백을 n-2개만큼 반복 출력하고, 다음 줄로 내리지 않습니다.
print(' ' * (n - 2), end='')
# 마지막 별 *를 하나 출력합니다.
print('*')
제출 결과
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
※ 공감 버튼❤과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍
반응형
댓글