Wacky_Life

 

코딩테스트 연습 - 직사각형 별찍기

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수

programmers.co.kr

 

문제 설명

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

 

 

제한 사항

  • n과 m은 각각 1000 이하인 자연수입니다.

 

예시

- 입력

5 3

 

- 출력

*****

*****

*****

 

 

코드

1
2
3
4
5
6
a, b = map(int, input().strip().split(' '))
 
for j in range(b):
    for i in range(a):
        print('*', end='')
    print('')
cs

 

1번째 줄 : 입력받은 숫자를 split를 활용해 띄어쓰기를 기준으로 나누고 map을 활용하여 int로 변환하여 a와 b로 반환한다.

3~5번째 줄 : 첫번째 for문은 행의 개수 만큼 반복하고 두번째 for문은 별의 개수 만큼 반복하여 *을 찍는다.

6번째 줄 : 다음 줄로 넘어가기 위해 print('')를 작성한다. 

 

 

하지만 이 방법은 for문을 2번 쓰기 때문에 효율적이지 않다.

 

1
2
3
4
a, b = map(int, input().strip().split(' '))
star = "*" * a
for i in range(0,b):
    print(star)
cs

 

1번째 줄은 위의 코드 방식과 같다. 차이점은 별의 개수만큼 찍어낸 star를 만들어서 1개의 for문을 통해 star를 반복해서 print한다.

 

1
2
3
a, b = map(int, input().strip().split(' '))
answer = ('*'*+ '\n')*b
print(answer)
cs

 

마찬가지로 1번째 줄은 동일하다. 위의 star와 for문을 answer에 하나로 만들어 print한 방법이다.

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading