데이터사이언스 기록기📚

[백준/Python] 11586번(구현, 문자열)_지영 공주님의 마법 거울 본문

Coding Test/백준(Python)

[백준/Python] 11586번(구현, 문자열)_지영 공주님의 마법 거울

syunze 2023. 2. 16. 00:08

📌문제 유형

구현, 문자열(브론즈III)

 

📌문제

 

11586번: 지영 공주님의 마법 거울

천나라 민호성의 지영 공주님은 매우 아름답다. 공주님 자신도 이 세상 그 누구보다 자신이 아름답다는 것을 알고 있다. 공주님은 자신의 아름다움이 세월의 저편으로 사라지는 것을 매우 두려

www.acmicpc.net

 

📌나의 문제풀이

  • 인덱스 역으로 출력할 때, 인덱스는 0~n-1인거 잊지 말기
  • 이중 리스트 선언 : [[0 for i in range(n)] for j in range(m)]
  • 문자열 이중 리스트 : 빈 리스트 안에 for문으로 문자 하나씩 넣기
n = int(input())
all = []

for i in range(n):
    row = input()
    all.append([char for char in row])

k = int(input())

if k == 1:
    for j in range(n):
        for m in range(len(row)):
            print(all[j][m],end='')
        print()
elif k == 2:
    for j in range(n):
        for m in range(len(row)-1,-1,-1):
            print(all[j][m],end='')
        print()
elif k == 3:
    for j in range(n-1,-1,-1):
        for m in range(len(row)):
            print(all[j][m],end='')
        print()

 

 

📌다른 사람의 풀이

  • 입력을 [input().strip() for _ in range(n)]로 이차원 배열 간단히 만들기
import sys
input = sys.stdin.readline
 
n = int(input())
arr = [input().strip() for _ in range(n)]
K = int(input())
 
def original():
    for i in range(n):
        for j in range(n):
            sys.stdout.write(arr[i][j])
        sys.stdout.write('\n')
 
def reverse_row():
    for i in range(n):
        for j in range(n-1, -1, -1):
            sys.stdout.write(arr[i][j])
        sys.stdout.write('\n')
 
def reverse_column():
    for i in range(n-1, -1, -1):
        for j in range(n):
            sys.stdout.write(arr[i][j])
        sys.stdout.write('\n')
 
if K == 1:
    original()
elif K == 2:
    reverse_row()
else:
    reverse_column()
n = int(input())
mirror = [input() for _ in range(n)]
k = int(input())
 
if k == 1:    # 원본 출력
    print(*mirror, sep='\n')
elif k == 2:    # 좌우 반전
    print(*[i[::-1] for i in mirror], sep='\n')
else:    # 상하 반전
    print(*mirror[::-1], sep='\n')

 

📌참고

- 문자열 분리

 

Python - 문자열을 한 글자씩 분리하여 리스트에 넣기

String을 한 글자씩(char) 나누고, 그 문자들을 list로 추가할 수 있습니다. 이 글에서 3가지 방법을 소개합니다. list()의 인자로 문자열을 전달하면, 문자 단위로 나누어 list에 저장합니다. for를 이용

codechacha.com

- 이중 리스트 선언

 

파이썬 (Python) 2중 리스트, 2차원 배열 선언 및 출력

https://infinitt.tistory.com/17 파이썬(Python) 기초 (6) 데이터 타입(Data Type) - 리스트 (list) 와 튜플 (tuple) 그리고 관련 함수(sort reverse insert remove pop append extend 등.. ) 리스트와 튜플은 모두 데이터를 한번에

infinitt.tistory.com

 

 

728x90
Comments