본문 바로가기
알고리즘 풀이/SW Expert Academy

[SWEA 5356] 의석이의 세로로 말해요 (python)

by char_lie 2023. 3. 2.
반응형

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWVWgkP6sQ0DFAUO 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

의석이의 세로로 말해요 문제

2차원 배열로 된 요소들을 가로가 아닌 세로로 읽어 출력하는 문제

100% 내 생각으로 풀었는가?
→ O

리스트 특성을 이용하면 간단히 풀 수 있는 문제

내가 푼 정답코드

T = int(input())
for case in range(1,T+1):
    x = [list(input()) for _ in range(5)]
    result = [[0]*15 for _ in range(15)] #세로로 읽을거 저장해줄거
    print(f'#{case} ',end = '')

    for i in range(5):
        for j in range(len(x[i])):
            result[j][i] = x[i][j] #세로값 저장

    for i in range(15):
        for j in range(15):
            if result[i][j] != 0: #0이 아닌부분 출력
                print(result[i][j], end='')
    print()

주어진 조건의 문자열의 길이는 15이하 이므로 최대 15까지 받아줄 2차원 리스트를 만들어주고, 그 리스트에 입력 값들을 세로 순서로 받아서 저장해주고 최종적으로 출력을 해주면 된다.

입력값이 전부 같은 길이가 아닌 서로 다른 길이고, 중간에 빈 공간은 띄워줘야 하므로 2차원 리스트로 크게 만들어서 출력하는게 더 나아 보여서 이렇게 출력하여 해결했다.


느낀 점

리스트의 특성과 for 문을 활용하여 풀 수 있는 구현 문제였다. 아이디어만 생각하면 비교적 간단하게 접근하여 풀 수 있었고, 큰 어려움은 없는 쉬운 문제였다.

반응형

댓글