
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12969
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
- 표준 입력으로 두 개의 정수 n과 m이 주어질 때,
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력 - 제한 조건) n과 m은 각각 1000 이하인 자연수
힌트 코드
a, b = map(int, input().strip().split(' '))
print(a + b)
- input()
- 사용자로부터 입력 받기
- 예) 5 3 이라고 입력하면 → "5 3" (문자열로 저장됨)
- .strip()
- 입력값에서 앞뒤 공백(띄어쓰기, 줄바꿈 등) 제거
- " 5 3 " → "5 3"
- .split(' ')
- 문자열을 공백 ' ' 기준으로 나눠서 리스트 만들기
- "5 3" → ['5', '3'] (여기서 두 개의 문자열이 생김)
- map(int, ...)
- 리스트 ['5', '3']에 있는 각 요소를 int(정수)로 변경
- ['5', '3'] → [5, 3] (숫자 리스트)
- 요약
- 사용자가 "5 3"처럼 입력하면,
a=5, b=3이 되는 코드 - a = 가로(의 개수)
b = 세로(출력 줄 수)
- 사용자가 "5 3"처럼 입력하면,
정답 코드
a, b = map(int, input().strip().split(' '))
for i in range(b):
print('*' * a)
참고) for _ in ... 문법
파이썬에서 자주 쓰이는 패턴으로, '반복은 하지만 반복 변수는 사용하지 않을 때'
a, b = map(int, input().strip().split())
for _ in range(b):
print('*' * a)
- range(b)
- 총 b번 반복
- for _ in range(b)
- 반복 인덱스 (0, 1, ..., b-1)는 사용하지 않기 때문에 _로 생략
- print('*' * a)
- 별 a개를 가로로 출력
최종) 세로 b줄, 각 줄마다 가로 a개의 별을 출력
'코딩 테스트 연습 > [프로그래머스] Python' 카테고리의 다른 글
| [LV.2] 월간 코드 챌린지 시즌1 > 3진법 뒤집기 (0) | 2025.06.27 |
|---|---|
| [LV.2] 연습문제 > 최대공약수와 최소공배수 (0) | 2025.06.26 |
| [LV.2] 연습문제 > 행렬의 덧셈 ⭐ (0) | 2025.06.24 |
| [LV.2] 연습문제 > 문자열 다루기 기본 (0) | 2025.06.23 |
| [LV.2] 위클리 챌린지 > 부족한 금액 계산하기 (0) | 2025.06.20 |