반응형
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())
만약 여러 개의 수를 입력받아서 리스트에 저장할 때는??
- 띄어쓰기로 구분된 수 입력받아서 저장할 때 (map 사용하기)
num = list(map(int, read().split()))
2. 엔터로 구분된 수 입력받아서 저장할 때 (for문 사용하기)
num=[]
for i in range(n):
num.append(read())
+추가사항
- open(0).read() == sys.stdin.read()
반응형
'코딩테스트 대비 > Python 문법' 카테고리의 다른 글
| [Python] 파이썬 타입 힌트 / 힌팅 / 어노테이션 (0) | 2023.06.22 |
|---|---|
| [Python] 리스트에 숫자 추가할 때 주의사항 (0) | 2023.06.20 |
| [Python] sep='', end='' 차이 (0) | 2023.06.20 |
| [Python] set (0) | 2023.06.20 |
| [Python] 파이썬에서 언더스코어( _ )란? (0) | 2023.06.20 |