문제 설명
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
제한 조건
- n과 m은 각각 1000 이하인 자연수입니다.
예시
입력
5 3
출력
*****
*****
*****
✅첫 번째 풀이
1
2
3
4
5
|
a, b = map(int, input().strip().split(' '))
for j in range(0, b):
for i in range(0, a):
print("*",end="")
print("\n", end="")
|
cs |
변수 j는 행을 담당하고 변수 i는 열을 담당한다. 먼저 행이 넘어가기 전에 입력된 변수 a만큼의 별이 한 행에 작성되어야 하기 때문에 이중 for문 중 안쪽에 변수 i에 대한 for문이 있다. print문에 *을 작성하고 뒤에 < end="" >를 작성하면 print문을 통해 자동으로 출력되는 줄 바꿈(\n)을 없앨 수 있다.
< end="" >를 작성하지 않았을 때 출력
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
원리를 좀 더 자세히 알아보자면, print는 출력문을 출력하고 뒤에 자동으로 줄바꿈(\n)을 출력한다. 이때 end를 사용하면 print가 출력문을 출력한 뒤에 올 값을 수정하여 원하는 값으로 바꿔준다. 위의 예에서 < end="" >에서는 따옴표 사이에 아무것도 없으므로 아무것도 출력하지 않은 것이다. 따옴표 사이에 < end="!" >와 같이 입력하면 한 출력문마다 뒤에 !가 붙는다.
✅두 번째 풀이
첫 번째 풀이는 문제를 처음 풀며 내 생각을 정리한 코드이다. 그래서 보통 하나하나 단계별로 풀어서 작성하게 되고 for문과 if문 등을 많이 쓰게된다.. 처음 풀이를 채점하고 나서는 코드를 좀 더 간단히 하거나 다른 방법으로 풀 수 있는지 알아본다.
그렇게 나온 두 번째 풀이 !
1
2
|
a, b = map(int, input().strip().split(' '))
print(("*"*a+"\n")*b)
|
cs |
이중 for문까지 쓸 것도 없었다.ㅎ^ㅎ 문자도 수학식으로 계산이 가능한 파이썬은 위와 같이 print문 안에서 행과 열의 수를 입력받은 변수 a, b로 계산하여 바로 원하는 출력이 가능하다.
이해를 돕자면 출력하고자 하는 *을 열의 개수 a와 곱하고< ***** >, 뒤에 줄바꿈(\n)을 더한다< *****\n >. 그리고 이렇게 나온 한 행을 행의 개수 b와 곱하여 출력문을 완성한다.
'Python 공부기록' 카테고리의 다른 글
Python _ 평균구하기 (0) | 2021.03.02 |
---|---|
Python _ 행렬의 덧셈 (2) | 2021.02.26 |
Python _ 핸드폰 번호 가리기 (0) | 2021.02.25 |
Python _ x만큼 간격이 있는 n개의 숫자 (0) | 2021.02.24 |
Python 공부기록 (1) | 2020.11.03 |