오늘 풀어본 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12969
a, b = map(int, input().strip().split(' '))
이 코드문이 맨 처음 문제 풀이를 할때 주어져 있었다.
평소와는 달리 def 라는 함수로 주지 않고 저런 코드문을 제공해줬다는 것을 보고 이게 이번 문제를 푸는데 가장 큰 도움을 주는 코드문이라는 걸 눈치 챌 수 있었다.
그러므로 n과 m이 아니라 a와 b로 대체해서 풀어보기로 했다.
우선 각 명령어가 어떤 일을 하는지 파악할 필요성을 느꼈다.
우선 map 의 역할에 대해 이해할 필요가 있었다. map의 역할은 심플했다. 리스트 안의 요소를 지정된 함수로 처리를 해주는 즉 for 문을 사용한다면 2번 3번까지 작업해야하는 일을 map이 혼자 할 수 있는 것이라는 점 위에 코드를 예시로 들기도 좋다.
a, b 라는 리스트에 있는 요소들은 map(int < 정수로 변환하고 , input( ) < 집어넣는다. strip () < 각각(별개로), split(' ')) < 공백 없이 라는 말은 표준 입력된 두 숫자의 공백을 없애고 각각 별개로 a와 b에 집어넣은 뒤 정수로 만든다는 일이다.
그 말은 원래처럼 for 문을 사용했다면 아마
for a in range(a)
a = int(a)
...
뭐 이런식으로 기타등등하면서 길게 늘어써야 했을것이고 아마 잠깐 직접 작성할 생각을 하니 머리가 터져나갈 것 같다.
어찌되었든 for 문 대신 map 을 사용해서 쉽게 a,b의 값을 구하고 정수로 바꿔주었으니 이제 프린트 할 일만 남았다.
a, b = map(int, input().strip().split(" "))
# 가로 길이 a, 세로 길이 b의 직사각형 출력
for x in range(b):
print('*' * a)
for x in range(b): 를 풀어보자면 range(b) > b의 수의 크기 만큼 for x 반복하여라 여기서 x의 역할은 b의 크기만큼 반복이 되었는지 카운트 하는 행동
그리고 print( ' * ' * a) 로 *의 갯수를 A만큼 프린트해라 라는 뜻이 되므로 결과값은
이렇게 각 a, b의 값만큼 사각형이 나오게 되며 문제 풀이를 성공하게 된다.
'Python' 카테고리의 다른 글
본 캠프 Python 알고리즘 코드카타 6일차 (0) | 2024.06.29 |
---|---|
본 캠프 Python 알고리즘 코드카타 5일차 (0) | 2024.06.28 |
본 캠프 Python 알고리즘 코드카타 4일차 (0) | 2024.06.27 |
본 캠프 Python 알고리즘 코드카타 2일차 (0) | 2024.06.25 |
본 캠프 알고리즘 코드카타 1일차 TIL (0) | 2024.06.24 |