[백준] 뜨거운 붕어빵 (Python)

규갓 God Gyu·2024년 7월 18일

백준

목록 보기
8/96

문제

고려대학교에 입학한 새내기 호돌이는 안암역을 지나다가 한 붕어빵 장수를 만났어요.

“안녕, 안녕, 안녕하십니까, 아저씨! 붕어빵 두 개 주세요.”

“안녕을 세 번 외쳤으니 붕어빵 세 개!”

붕어빵 두 개의 값을 내고 세 개를 받은 호돌이는 기분이 좋았어요. 호돌이가 붕어빵 하나를 꺼내어 한 입 물었는데…. 너무 뜨거워서 그만 붕어빵을 떨어뜨리고 말았어요ㅠㅠ

붕어빵은 자유 낙하운동을 하면서 땅에 떨어졌는데 신기하게도 좌우가 뒤집힌 모양으로 착지했답니다. 호돌이가 붕어빵을 한 입 물기 전의 모양이 입력으로 주어지면, 땅에 떨어졌을 때에는 어떤 모양일지 출력하세요.

입력

첫째 줄에는 두 개의 정수 N과 M(0≤N,M≤10)이 주어집니다. 둘째 줄부터 N개의 줄에 걸쳐 붕어빵의 모양이 주어집니다. 각 행에는 공백을 나타내는 ‘0‘ 또는 붕어빵을 나타내는 ‘1’이 총 M개 주어집니다.

출력

입력으로 주어진 붕어빵이 좌우로 뒤집힌 모양을 출력하세요.

예제 입력 1

5 7
0010000
0111010
1111111
0111010
0010000

예제 출력 1

0000100
0101110
1111111
0101110
0000100

힌트

입력으로 주어지는 각 행을 반전시켜서 출력하면 됩니다. 입력의 1행 1열은 출력의 1행 M열로, 입력의 1행 2열은 출력의 1행 M-1열로 … 입력의 1행 M열은 출력의 1행 1열로 … 입력의 N행 M열은 출력의 N행 1열로 출력하세요.

최종 코드

# 숫자 N과 M을 입력
N, M = map(int, input().split())

# 붕어빵의 모양 입력 받기
shapes = []
for _ in range(N):
    shapes.append(input())
    
# 각 줄을 뒤집어서 출력
for shape in shapes:
    reversed_shape = shape[::-1]
    print(reversed_shape)

이 문제는 손도 못 댔으므로 일단 결과부터 보이고 과정에 대해 공부해보겠다

풀이 과정

  • N, M = map(int, input().split())로 N과 M을 입력 받기

    • N은 줄의 개수, M은 각 줄의 길이
  • 붕어빵 모양 입력 받기

    • shapes = [] : 빈 리스트를 생성하여 붕어빵 모양 저장할 list 준비
    • for _ in range(N) : N번 반복하면서 각 줄의 모양을 입력 받음

      N번 반복하는 루프(왜냐면 0번부터 시작해서 N-1번까지 반복하므로)
      _는 변수명을 따로 사용할 일이 없어서 명시적으로 사용하지 않겠다는 의미

    • shapes.append(input()) : 각 줄의 모양을 리스트에 추가

      append함수는 리스트의 끝에 새로운 요소를 추가해주는 함수
      즉 각 줄의 모양을 입력 받아 shapes list에 추가함
      첫번째 띄워써서 적은 두 숫자는 N과 M에 들어가게됨
      두번째 줄 입력부터는 여기서 입력값이 넣어짐

  • 뒤집힌 모양 출력

    • for shape in shapes : shapes 리스트에 있는 각 줄의 모양을 순회

      반복중인 현재 줄의 모양을 shape 변수명으로 정의했음

    • reversed_shape = shape[::-1] : 문자열을 뒤집어서 저장

      문자열을 뒤집어주는 방법

    • print(reversed_shape) : 뒤집힌 모양 출력

    이 문제도 과정먼저 보고 풀었으므로 낼 꼭 다시 풀어볼 것!!

profile
웹 개발자 되고 시포용

0개의 댓글