본문 바로가기

코딩테스트 준비/백준

[백준]15552번 : 빠른 A+B 파이썬(Python) 풀이

반응형

 

출처 : 미리캔버스

 

 

문제 설명: 첫 줄에 반복할 횟수(최대 1,000,000)를 입력, 해당되는 횟수만큼 2개의 정수(1이상, 1000이하)를 입력하면  그 둘의 합을 출력한다.

위에 보시면 Python의 경우 input() 대신 sys.stdin.readline()을 사용하라고 나와있습니다. 

이유는 input() 으로는 속도의 한계가 있어서입니다. 아래 두 가지를 비교 정리해 뒀으니 참고 바랍니다.

* input() vs. sys.stdin.readline() 

ㄱ. input의 경우 사용자로부터 입력을 받은 후 입력받은 표현식을 분류합니다.(이 때, 입력받기 전까지 프로그램 흐름 중지) 

Python은 사용자가 입력한 것이 str인지 int인지 list인지 자동으로 분류하는데, 입력한 형식이 맞지 않는다면 오류를 출력한다.

eg) '나는 바보' 와 같은 string(문자열) 을 input() 함수에 넣으면서 타입을 int() 로 지정하면 오류가 발생한다. 

이 때, 입력받은 표현식을 문자열로 변환한 후, 타입 캐스팅(내가 표현식에 지정해서 넣은 타입)을 사용하여 정수로 변환해야 합니다.

 

정리하면, 입력한 표현식 문자열로 변환 후 타입 캐스팅으로 int로 재변환해야하므로  다량의 반복이 들어갈 경우 런타임 에러가 발생

 

ㄴ.  sys.stdin.은 파일 객체로 이 메서드는 사용자가 입력 한 이스케이프 문자도 읽으므로 input () 메서드와 약간 다릅니다. 

뒤에 read() 나 readlines() 를 붙여서 한 줄 씩 읽거나 한번에 다 읽거나 할 수도 있습니다. 따라서  input()과 달리 입력 프롬포트 미노출

 

중요한 건 , sys안에 있는 객체를 사용하는 것이므로 사용하기 전 sys를 import 해줘야 한다,

 

 

정답 코드

 

 

 

 

 

 

* 백준 포스팅 원칙 : 풀었지만 다음에 못 풀 것 같은 문제 / 구글의 도움을 받은 문제 / 나중에 보면 도움 받을 것 같은 문제 포스팅

 

 

https://link.coupang.com/a/rGILU

 

[한빛미디어]이것이 취업을 위한 코딩 테스트다 with 파이썬

COUPANG

www.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형