hello70825   5년 전

하나는 rstrip()을 이용해 \n을 빼고 dict에 저장하여 출력하게 만들었고,

다른 하나는 rstrip()을 사용하지 않고 dict에 저장한 후에 출력할때 end=""를 넣어 출력하였습니다.

두 코드에 똑같은 값을 입력했을 때 출력이 똑같이 나오던데 첫번째 코드는 맞았습니다가 떴고, 두번째 코드는 틀렸습니다가 뜬 것 입니다.

똑같이 출력되는 것처럼 보이는데 실제로는 다르게 출력되고 있는 것인가요?

거기에 맞는 반례가 무엇이 있는지 궁금합니다.

seico75   5년 전

입력 마지막에 \n 이 없다면 

출력에서 개행하고 끝나냐 아니냐의 차이 아닐까요?

이게 결과에 채점 결과에 영향을 줄지는 모르겠네요.

hello70825   5년 전

Hello World문제로 확인해보니까 print('')랑 print('Hello World!',end='')가 통과되는 것보면 영향을 주지 않는 것 같습니다.

쓰다보니까 생각난건데 애초에 16번째 줄의 i 값이 7줄의 i에 \n이 추가된 값이라서 i가 출력될때마다 개행을 하기 때문에 개행하냐 안하냐의 차이는 아닌 것 같습니다.

윗 코드와 밑 코드의 출력이 완전 똑같을텐데 데이터라도 검색해서 확인해보려니까 찾을 수가 없네요.

seico75   5년 전

마지막 라인에 enter 없이 아래 파일로 넣어보시면....

windows 에서 type input.txt | python test1.py 

이런식으로요..

3 9
20103324
20133221
20133221
20093778
20140101
01234567
20093778
20103325
20133221

hello70825   5년 전

마지막에 엔터 없이 마지막 값이 입력 될 수 있나요??

그럼 위에 적힌 코드나 아래에 적힌 코드나 서로 마지막값을 입력받지 못할 것 같은데.. 아닌가요?

seico75   5년 전

엔터를 치는 것 외에도 EOF를 넣는 등으로 입력 버퍼를 넘길 수 있습니다.

type input.txt | python test1.py  (윈도우)

cat  input.txt | python test1.py  (리눅스)

와 같이 파일로 입력을 넣을 때에도 가능하고

ctrl-z (윈도우) 나 ctrl-D를 눌러서도 입력할 수 있습니다.

아래와 같이 추가하면 통과하네요.

    if S[-1] != '\n':
        S = S + '\n'

hello70825   5년 전

입력 넣는 것도 여러가지가 있었군요

답변해주셔서 정말 감사합니다

hello70825   5년 전

마음 같아서는 좋아요 100개 누르고 싶네요 ㅋㅋ

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