파이썬 알고리즘 17일차

Yey! 한 번에 맞췄다! 사실 그렇게 어렵지 않은 문제였긴 하지만 난 가끔 list와 string의 메소드나 함수를 헷갈리기 때문에... 처음에는 오잉 했었다.

9093: 단어 뒤집기

1. 내 풀이: 성공

import sys

N = int(sys.stdin.readline())

for _ in range(N):
    sentence = sys.stdin.readline().strip().split()
    for i in range(len(sentence)):
        for j in reversed(range(len(sentence[i]))):
            print(sentence[i][j], end="")
        print(end=' ')

깔끔하도다... 처음에는 문장 자체를 뒤집는 줄 알고 반복문을 써서 아예 뒤집었는데, 알고 보니 문장 안의 단어들만 뒤집는 거라 2차원 배열을 써서 뒤집었다. end=""와 end=' '를 쓸 생각을 한 나 자신... 대단해 ✨ (당연한 거지만 ^^)

너무 당연한 풀이라 더 이상 설명할 게 없다...! 다른 사람들의 풀이를 보자.

2. 다른 풀이

import sys
input = sys.stdin.readline
n = int(input())
s = [list(input().split()) for i in range(n)]
for i in range(n):
    for j in s[i]:
        print(''.join(reversed(list(j))), end=" ")
    print()

(출처: https://pacific-ocean.tistory.com/430)

나랑 조금 비슷하면서도 다르다...! 이 분의 풀이말고도 다른 풀이 중에서는 stack 자료구조를 활용한 (pop 이용) 풀이나 하나하나씩 print 하지 않고 문자열로 만들어서 한 번에 출력하는 등의 다양한 풀이가 있었다...!

다음에 stack 자료구조를 활용한 풀이는 한 번 도전해보아야겠다.

오늘도 신기한 알고리즘의 세계 끝!

좋은 웹페이지 즐겨찾기