dnwls4659   1년 전

반복문을 통해서 input()을 넣을때는 sys를 사용해서 시간초과가 발생하지않도록 해주는건 알고 있는데 구체적으로 input과 sys.stdin.readline의 차이를 잘 모르겠습니다.

그리고 이 문제에서 sys 사용 유무에 따라 값이 다르게 나오는데 왜 그런지 알 수 있을까요?

lycoris1600   1년 전

sys.stdin.readline은 input보다 빠른 입출력 형식이라는 점만 아시면 될 것 같습니다.

sys 라이브러리를 이용하였을 때 틀린 답이 출력되는 이유는 stdin.readline이 개행문자까지 입력받는 입력 형식이기 때문입니다.

위에 케이스에서

input을 사용하여 입력을 받으면 S는'ababc'가 되어 len(S)는 5가 되지만, stdin.readline을 사용하여 입력을 받으면 S는'ababc\n'이 되어 len(S)는 6이 되게 됩니다.

이러한 차이 때문에 WA를 받습니다

dnwls4659   1년 전

덕분에 확실하게 이해가 됐습니다!

applc131   8달 전

저는 테스트케이스 잘 통과했고, 게시판 내 다른 반레(?)에도 잘 성립이 되었음에도 input()에서  input().strip()으로 바꾸니 풀리더라구요. len(str)으로 출력해봐도 길이는 ababc에서 5가 나오는 걸 확인했는데 말이에요.... strip()으로 개행문자를 제거한다는 걸 익혀두어야겠네요...

import sys
input = sys.stdin.readline

str = input().strip()
substr = set()
#print(len(str))

size = len(str)
for i in range(1,size+1):
for j in range(size-i+1):
substr.add(str[j:j+i])

print(len(substr))

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