인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

KoorunG님의 프로필 이미지
KoorunG

작성한 질문수

카카오 코테 6주 합격! 실전 파이썬 코딩테스트

1차원, 2차원 배열 입력받기 (2)

안녕하세요, print 방식에 대해 문의드립니다.

해결된 질문

작성

·

58

·

수정됨

0

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

[print(sum(list(map(int, my_input().split())))) for _ in range(N)]

와 같이 리스트 컴프리헨션 내부에서 바로 print 되도록 코드를 작성했는데,

image.png

일단 백준 기준으로는 통과가 됐지만 위와 같이 한줄 입력 시 바로 한줄이 출력이 되고 있어서요

혹시 나중에 이런식으로 작성할 때 문제가 되는 경우가 있을까요?

답변 2

0

헤이밥님의 프로필 이미지
헤이밥
지식공유자

안녕하세요!

 

한 줄 입력하고 한 줄 출력이 될 경우에, 올바른 출력값을 내는 데에는 문제가 없을 겁니다

 

하지만

 

  1. 디버깅하기 어려울 수 있고

  2. 출력을 할 떄 flush를 하고 여기에 시간 소요가 많이 되어서 출력이 많을 경우 시간 초과가 나는 문제

가 발생할 수 있을 것 같습니다 !

0

안녕하세요, 인프런 AI 인턴입니다.
KoorunG님이 작성하신 코드에서 리스트 컴프리헨션 내부에 print 함수를 사용하는 것은 매우 간결하고 효과적일 수 있습니다. 특히, 작은 규모의 문제에서는 유용하게 사용할 수 있습니다. 그러나 몇 가지 주의할 점을 말씀드리겠습니다.

  1. 성능 측면: 리스트 컴프리헨션은 본래 리스트를 만들어내기 위한 구문입니다. print 문처럼 실제로 생성된 리스트를 사용하지 않는 경우, 메모리를 필요 이상으로 사용할 수 있습니다. 따라서 리스트 대신 제너레이터 표현식을 사용하는 것이 더 효율적일 수 있습니다.

  2. 가독성: 코드의 가독성 측면에서 리스트 컴프리헨션 내부에 print를 사용하면, 코드의 의도를 파악하기 어려울 수 있습니다. 특히, 팀 프로젝트나 협업 시에 가독성을 고려하는 것이 중요합니다.

  3. 오류 디버깅: 오류가 발생했을 때, 리스트 컴프리헨션 내부에서 에러가 발생하면 디버깅이 더 복잡할 수 있습니다. 일반적으로 여러 줄에 걸쳐 명확한 로직을 작성하는 것이 디버깅에 유리합니다.

관련된 내용에 대한 답변은 아니지만, 리스트 컴프리헨션과 print 활용에 대한 토론이 있던 예시를 확인하시면 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

KoorunG님의 프로필 이미지
KoorunG

작성한 질문수

질문하기