헉! 전 85% 까지가서 시간초과를 받았습니다.
2010번 - 플러그
아무리 파이썬이라지만 50만번인데도 시간초과라니 ㅠ.ㅠ
그런데 파이썬2는 시간초과인데 파이썬3은 통과네요.
input() 50만번이 힘든작업인가;
파이썬3에서는 input()이 파이썬2의 raw_input()과 같은 것이고
파이썬3에는 파이썬2의 input()에 해당되는것이 없던거 같은데 문제가 있어서 없앤걸까요?
아시는분?
입출력 스트림에 대한 문제 같습니다.
파이썬이 동적변수라지만 변수의 형태로 저장하기 위해서 input() 메소드 내에서 가공을 할텐데
raw_input() 은 문자열을 반환하고 input() 은 raw_input() 을 evaluate한 결과를 반환합니다.
sys.stdin.readline() 은 한 줄의 문자열를 반환하는데 이것을 int() 로 묶어서 정수로 변환하는게 더 빠른가봅니다.
다른 언어에도 똑같은 원리가 적용되지요.
Java에서는 Scanner 보다 Buffered~ 가 더 처리가 가볍고, C++에서는 cout 보다 printf 를 이용하는게 시간적인 측면에서 효율적이라고 알고있습니다.
C++은 함수오버로딩도 있고 해서 훨씬 오래 걸리는것 같지만요..
joonas님 감사합니다. 좋은거 배웠네요 ㅎ
484 MS걸리는 코드
string 으로 받아서 한번에 map()으로 형변환하면 더 빨라져요
최고 방법:파이썬 쓰지 말고PyPy3나 C++17을 쓰자!
댓글을 작성하려면 로그인해야 합니다.
lazy_ren 9년 전 2
아래 소스와 같이 첫 줄 인풋받고,
인풋받은 만큼 반복해서 리스트로 받고(바로 answer += input() 도 해봤습니다ㅠㅠ) 리스트 다 더해서 정답구해라!
라고 했는데 채점중52%에서 멈추더니 시간초과가 나네요..
혼자서 python 공부하는지라 어디 물어볼 곳도 없고, 인터넷에 찾아봐도 애초에 시간초과 나는 이유를 정확히 모르니 찾기도 힘들고...염치불구하고 질문 남겨봅니다.
어떻게 해야 더 효율적으로 풀어서 해결할수있는거죠? 다른 분들은 ms 단위로 답이 나오시던데...