문제
https://school.programmers.co.kr/learn/courses/30/lessons/12969?language=python3
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
제한 조건
- n과 m은 각각 1000 이하인 자연수입니다.
예시
입력
5 3
출력
*****
*****
*****
풀이
n, m = map(int, input().strip().split(' '))
for i in range(m):
print('*'*n)
설명
input을 통해 두 자연수 n과 m을 공백을 사이에 두고 입력 받는다. 이때 strip()을 통해 입력 받은 문자에서 양 옆에 공백을 없애고 split(' ')을 통해 n과 m을 두 문자로 나누어 리스트로 만든다. 그 리스트에 map(int, 리스트)을 적용하여 n과 m에 두 자연수를 입력받는다.
다음으로 별('*')을 이용하여 가로줄의 개수 m, 세로줄의 개수 n만큼 을 출력해야한다. 가로줄 한 줄 출력은 print('*' * n)를 통해 가능하다. 따라서 이것을 for문을 통해 m번 반복하면 가로의 길이가 m이고 세로의 길이가 n인 직사각형을 출력할 수 있다.
Tip (아래 "더보기" 클릭)
원래 map()을 이용하여 반환된 map객체만으로는 안에 들어있는 값을 볼 수 없다. 따라서 해당 map객체에 list()를 사용해야만 값을 볼 수 있다.
또한, 해당 map객체는 iterable하여 변수 여러 개에 저장하는 언패킹(unpacking)이 가능하다.
예) a, b = map(function, iterable)
TIL
- str.strip(a): 인자로 전달된 문자 a를 str의 왼쪽과 오른쪽에서 제거합니다. 이때 인자를 전달하지 않을 수도 있으며 그 경우 왼쪽과 오른쪽에서 공백을 제거합니다.
- map(function, iterable): 두 번째 인자로 전달된 iterable자료형의 값들에 첫 번째 인자로 전달된 함수를 적용하여 map 객체로 만들어 반환한다.
(*map객체는 iterable하여 a, b = map(function, iterable) 처럼 변수 여러 개에 저장하는 언패킹(unpacking)이 가능하다.)
'Algorithm, 코딩테스트' 카테고리의 다른 글
같은 숫자는 싫어-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (0) | 2022.10.09 |
---|---|
최대공약수와 최소공배수-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (0) | 2022.10.07 |
부족한 금액 계산하기-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (1) | 2022.10.07 |
행렬의 덧셈-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (0) | 2022.10.06 |
약수의 개수와 덧셈-파이썬(Python) [프로그래머스/코딩테스트 연습/Lv.1] (0) | 2022.10.06 |