[Baekjoon] 9093/단어 뒤집기/Python/파이썬/구현/문자열/슬라이싱

·2024년 12월 3일
0

문제풀이

목록 보기
2/56
post-thumbnail

💡문제

문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.

출력

각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.

예제입력

2
I am happy today
We want to win the first prize

예제출력

I ma yppah yadot
eW tnaw ot niw eht tsrif ezirp

📖내가 작성한 Code

import sys


def main():
    test_case = int(input())
    for case in range(test_case):
        sentence = sys.stdin.readline().split()
        print(' '.join(i[::-1] for i in sentence))


if __name__ == "__main__":
    main()

✍️풀이과정

자료구조로 문제였지만, Python,JS로 코딩테스트를 준비하기 때문에 슬라이싱으로 푸는게 더 좋다고 생각해서 이렇게 구현. 입력 스트립과 슬라이싱 개념을 다시 한 번 되집어 보는 시간을 가지려고 개념을 정리해둠.

sys : 표준 라이브러리 모듈
studin : 표준 입력 스트립 객체
readline : 한줄씩 읽기(대신 입력 끝인 \n 포함) 메서드
split() : 특정 구분자를 list형태로 반환하는 메서드
strip() : 처음과 끝 공백 문자 제거 메서드(타입은 string)
join : 리스트 튜플 등을 문자열로 반환


🧠 코드 리뷰

  1. 입력 방식의 일관성 : input()과 sys.stdin.readline()는 다르게 버퍼링 됨. 따라서 일관된 방법으로 입력 처리

  2. 코드 가독성 향상 및 함수 분리 : 뒤집어 반환하는 것도 함수로 분리

  3. 에러 처리 추가


🛠️AI 개선 코드

    import sys

    def reverse_words_in_sentence(sentence: str) -> str:
        
        words = sentence.split()
        reversed_words = [word[::-1] for word in words]
        return ' '.join(reversed_words)

    def main():
        
        input = sys.stdin.read().splitlines()
        if not input:
            return

        try:
            test_case = int(input[0])
        except (ValueError, IndexError):
            print("첫 번째 입력은 정수여야 합니다.")
            return

        for i in range(1, test_case + 1):
            if i >= len(input):
                print(f"{test_case}개의 테스트 케이스를 입력해야 합니다.")
                break
            sentence = input[i]
            reversed_sentence = reverse_words_in_sentence(sentence)
            print(reversed_sentence)

    if __name__ == "__main__":
        main()


💻결과

백준문제 보러가기


🖱️참고 링크

자료구조 Python 공식문서

profile
우물 안에서 무언가 만드는 사람

0개의 댓글