ryuflower   3년 전

안녕하세요, c++을 사용해서 같은 알고리즘을 사용했는데 입력받는 방식에 따라 하나는 통과, 하나는 시간초과로 뜹니다.

혹시 어떤 차이에서 발생하는지 알려주실 수 있으실까요.


통과하는 입력 : string으로 한줄 씩 받은후 int map에 값을 복사 한후 비교할때 int 값으로 비교.

시간초과하는 입력 : char로 하나씩 입력 받은후 비교할때 char값으로 비교

hoxymola   3년 전

?

djm03178   3년 전

그만큼 scanf로 %c로 한 글자씩 입력받는 게 느리다고 그대로 받아들이시면 될 것 같습니다. 코드의 로직이 이미 n^3인 것 같아서 통과된 코드도 아슬아슬하기 때문에 약간만 더 느린 입력을 쓰더라도 시간 초과가 되는 것이 이상하지 않습니다.

그보다 정확히 어떻게 바꾸셨다는 건지 잘 모르겠네요. 해당 주석 부분만 해제하고 14번째 줄을 지우는 것으로는 틀렸습니다가 나옵니다. 질문 시에는 맞은 코드보다는 틀린 코드를 우선적으로 온전하게 올려주시는 편이 좋습니다.

ryuflower   3년 전

감사합니다.

%c가 훨씬 느리군요.

다음번 질문때는 말씀해주신 내용 참고하도록 하겠습니다.

댓글을 작성하려면 로그인해야 합니다.