티스토리 뷰

알고리즘

백준 파이썬 10798 세로 읽기

chaewonni 2023. 9. 12. 12:51

 

 

🚀접근하기

전체적으로는 쉬운데, 예제 입력 2처럼 세로로 읽을 때 해당 자리에 글자가 없으면 읽지 않고 그 다음 글자를 계속 읽도록 작성하는 게 관건이었던 문제다.

또한 평소처럼 가로로 읽는 것이 아닌 세로로 읽도록 순서를 작성해줘야 한다.

🎉코드

lst = []

for i in range(5):
    row = [' '] * 15
    lst.append(row)

for i in range(5):
    s=input()
    for j in range(len(s)):
        lst[i][j] = s[j]

result = ""

for i in range(15):        
    for j in range(5):
        if lst[j][i] != ' ':
            result += lst[j][i]
        else:
            continue

print(result)

 

index out of range 오류가 나는 것을 방지하기 위해 애초에 15*5의 2차원 배열을 생성해주었다. (15가 최대 길이 이므로)

그리고 그 안을 다 ' '으로 넣어주었다.

 

그러면 s를 input으로 받아 배열에 넣어주면 문자열의 길이 만큼은 문자열이 들어가고, 아닌 나머지 부분은 ' '으로 남아있게 된다.

예를 들어

AABCDD
afzz
09121
a8EWg6
P5h3kx 를 입력하면

 

[['A', 'A', 'B', 'C', 'D', 'D', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], ['a', 'f', 'z', 'z', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], ['0', '9', '1', '2', '1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], ['a', '8', 'E', 'W', 'g', '6', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '], ['P', '5', 'h', '3', 'k', 'x', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']] 이렇게 배열에 들어간다.

 

그러면 이제 세로로 2차원 배열을 읽어주기만 하면 된다. 여기서 중요한 것은 만약 lst[j][i]가 ' '이 아닐 때만 result에 붙여주는 것이다. 만약 ' ' 이라면 읽지 않고 넘어가서 그 다음 글자를 읽게 된다.

 

💪다짐

 
사실 이 풀이가 가장 간결하고 깔끔한 풀이라고는 할 수 없는 것 같다. 다 푼 후에 다른 분들의 풀이를 보았더니 문자열의 길이에 따라서 비교 연산자를 작성하는 등 더욱 간결하게 코드를 작성하신 분도 계신 것 같은데, 나도 최대한 간결하고 깔끔한 풀이를 작성하도록 노력해야겠다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함