[Python] read(), input()

Heidi·2023년 5월 20일
0

파이썬 기본 문법

목록 보기
9/11

read = sys.stdin.readline

read = sys.stdin.readline

import sys
read = sys.stdin.readline

n = read()
l = len(n) -1
ans = 0

for i in range(l):
    ans += (9*(10**i))*(i+1)
ans += ((int(n)- (10**l))+1)*(l+1)
print(ans)

이렇게 풀었을 때는 15를 입력했을 때 답이 -63이 나옴

  • 시간 안에 풀기 위해서 이걸로 선택했는데 오답이 나옴

input()


n = input()
l = len(n) -1
ans = 0

for i in range(l):
    ans += (9*(10**i))*(i+1)
ans += ((int(n)- (10**l))+1)*(l+1)
print(ans)

이렇게 풀면 15를 입력했을 때 답이 21이 나옴 (이게 정답)

두 개의 차이점

sys.stdin.readline()

  • 개행 문자를 포함한 값을 리턴한다.
  • 대신 빠르다.

input()

  • prompt message 를 받음
  • 개행 문자를 자동으로 삭제하여 리턴한다.
  • 대신 느리다.

결론

무조건 sys.stdin.readline().strip() 을 써줘야 함!!!!!!!!
그래야 개행을 삭제해서 오답이 나오지 않는다!!!!

숫자로 입력받으려면 어떻게 해야 할까?

>
~~int(read().split())~~ (오류남)

>
~~int(read()).split()~~ (오류남)
>> map 이용하기!!
map(int, input().split())

만약 여러 개의 수를 입력받아서 리스트에 저장할 때는??

  1. 띄어쓰기로 구분된 수 입력받아서 저장할 때 (map 사용하기)
num = list(map(int, read().split()))
  1. 엔터로 구분된 수 입력받아서 저장할 때 (for문 사용하기)
num=[]
for i in range(n):
	num.append(read())
profile
기획자

0개의 댓글

관련 채용 정보