Study/Python

[99클럽 코테 스터디] 4일차 TIL - 뜨거운 붕어빵

eunhyeon5322 2025. 1. 16. 16:03

문제 링크 

https://www.acmicpc.net/problem/11945

 

문제 설명

문제

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

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

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

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

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


입력

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

출력

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

입출력 예 설명
입력

5 7
0010000
0111010
1111111
0111010
0010000


출력

0000100
0101110
1111111
0101110
0000100

 

 

‍💻내가 짠 코드

N, M = map(int, input().split())

for _ in range(N):
    line = input()
    print(line[::-1])

✍ 접근 방법

  • 첫째 줄에서 N과 M을 입력받고 정수로 바꾸기
  • N개의 줄을 반복하면서 각 행을 입력받고, 이를 문자열 슬라이싱([::-1])을 이용해 뒤집어 출력

 

 

💡 다른 풀이

N, M = map(int, input().split())

fish_shape = [input() for _ in range(N)]

for row in fish_shape:
    print(row[::-1])

 

if 모든 입력을 한번에 받을 경우

# 입력 전체를 처리하기
data = input().splitlines()  # 모든 입력을 한 번에 받아 줄 단위로 분리
N, M = map(int, data[0].split())  # 첫 번째 줄에서 N, M 추출
fish_shape = data[1:]  # 나머지 줄을 붕어빵 모양으로 저장

모든 입력을 한 번에 받고 첫째 줄에서 N과 M을 추출 후 나머지 줄을 붕어빵 모양으로 저장

 

if 상하반전일 경우

N, M = map(int, input().split())

lines = []

for _ in range(N):
    line = input()
    lines.append(line)

for line in reversed(lines):
    print(line)