[BOJ/Python] 11718 그대로 출력하기

2023. 8. 18. 09:53·💻IT Dev/Algorithm
728x90
📌 문제
 

11718번: 그대로 출력하기

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시

www.acmicpc.net

 

 

📌 처음 코드

# 11718 그대로 출력하기
import sys
input = sys.stdin.readline

a = list(map(str, input().split()))  
print(*a)

💡 풀이

  1. 여러 문자를 리스트 형태로 입력 받는다.
  2. 리스트 내 요소 전체를 출력하는 *를 활용해 리스트 전체를 출력해준다.

막연하게 생각하고 간단하게 코드를 짰는데, 코드상의 오류는 없었으나, 출력이 예제 문자열 중 하나 밖에 출력되지 않으면서 틀렸다고 했다. 입력값을 변형 없이 오롯이 그대로 출력하는 게 이 문제의 핵심인데, 해당 방법 외에는 어떤 식으로 문자열을 그대로 출력할 수 있을지 이해가 잘 되지 않았다.

그래서 어제, 오늘 고민해본 끝에 다른 블로그를 참조해보기로 했다.

 

 

📌 수정 후 코드

# 11718 그대로 출력하기
import sys
input = sys.stdin.readline

# 반복문을 통해 입력받는 값들은 모두 출력
while True:
    try:
        print(input())
    # EOFError : End Of File -> 입력 값의 끝 글자
    # 문자의 끝 글자를 확인 후 break를 걸어 반복문 종료
    except EOFError:
        break

💡 풀이

이 문제는

  1. 반목문을 통해 try, except 구문을 돌리면서 입력 값을 그대로 출력시키고,
  2. EOFError : End Of File 를 통해 문자의 끝글자를 확인 후 반복문을 종료시키도록 해야 했다.

참조한 블로그를 바탕으로 해당 구문을 사용해 제출했는데, 출력 초과로 실패했다.

왜 출력 초과였던 건가 고민하던 찰나, 지난 문제에서 sys모듈을 import 시켰던 것 때문에 코드는 맞음에도 불구하고 오답처리 됐던 게 생각나 import sys를 제거한 후 다시 제출해봤다. 

 

 

📌 최종 코드

# 11718 그대로 출력하기

# 반복문을 통해 입력받는 값들은 모두 출력
while True:
    try:
        print(input())
    # EOFError : End Of File -> 입력 값의 끝 글자
    # 문자의 끝 글자를 확인 후 break를 걸어 반복문 종료
    except EOFError:
        break

예상했던 대로 import sys 구문을 제거한 뒤 다시 제출하니 정답처리 됐다.

아무래도 해당 구문은 입력 시간을 단축시켜주는 용도이긴 하지만 문자를 입력받을 때 자동 개행처리를 하고, 개행처리를 해결해주지 않으면 반복문에서 처리 시간이 늦어져 출력시간이 늦어지는 거 같다.

 

 

📌 정리

try-except : 예외처리 시 사용하는 구문
  - 예외처리 : 예상치 못한 (개발자가 의도하지 않은 경우) 결과가 발생했을 경우 별도로 처리하는 방법

EOF (End Of File) : 문자의 끝 글자 

 

 

적극적인 피드백은 언제나 환영입니다:)

 

더보기

참고
https://develop247.tistory.com/163

 

'💻IT Dev/Algorithm' 카테고리의 다른 글
  • [BOJ/Ptython] 11720 숫자의 합
  • [BOJ/Python] 11654 아스키 코드
  • [BOJ/Python] 9086 문자열
  • [BOJ/Python] 2743 단어 길이 재기
꾸우._.
꾸우._.
하루에 하나, 기록 한 줄기
  • 꾸우._.
    기록 한 줄기
    꾸우._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (98)
      • 📓Diary (3)
        • Keyword (3)
      • ⌨Tools (10)
        • Figma (10)
      • 🙋‍♀️PM (40)
        • Project Manager (3)
        • Process, Framework (19)
        • UI·UX (7)
      • ✏PMB 18 (13)
      • 💻IT Dev (32)
        • CS (1)
        • Algorithm (30)
        • Python (0)
        • HTML, CSS (1)
  • 블로그 메뉴

    • Tag
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    UI
    Design Thinking Process
    figma
    PM부트캠프
    Design Thinking
    더블 다이아몬드 프로세스
    Project Manager
    오쌤의 니가스터디
    Product manager
    백준
    flo
    코드스테이츠
    JTBD
    PM 직무 용어
    PM
    프로젝트 매니저
    알고리즘
    Double Diamond Process
    주간 회고
    패스오더
    BOJ
    Strategy
    구현
    UX
    문자열
    Algorithm
    agile
    프로덕트 매니저
    사칙연산
    디자인 씽킹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
꾸우._.
[BOJ/Python] 11718 그대로 출력하기
상단으로

티스토리툴바