백준 10757번 풀이

문제

A+B를 출력하면 되는데 이게 숫자가 좀 크다.

Reference

https://beyond1.tistory.com/65 (10757)큰 수 A+B)

이건 C언어 풀이

https://ko.wikipedia.org/wiki/Int_(C_프로그래밍_언어) (int(C))

https://dojang.io/mod/page/view.php?id=30 (코딩도장-7.0 정수 자료형 사용하기)

C언어는 왜 풀이가 복잡한지 알아보기 위해 자료형 검색했음…

풀이

import sys
a,b=map(int,sys.stdin.readline().split())
print(a+b)

파이썬은 이거 넣으면 된다. input보다 sys.stdin.readline()이 빨라서 저거 씀.

그럼 도대체 C언어는 왜!!! 풀이가 저런가 자료형을 찾아봤는데…

  • Char: 8bit
  • Short: 16bit (32bit CPU)
  • Int: 16bit
  • Long: 32bit
  • Long long: 64bit (32bit CPU)

다른 건 모르겠고 2^64보다 크면 에러 각 나왔죠. (잊지 말자, 컴퓨터는 손가락이 두 개다)

출처: 코딩도장 C언어-7.0 정수 자료형 사용하기

signed와 unsigned는 커버 범위가 다른데, signed의 경우 맨 앞에 있는 게 부호비트로 빠져서 그렇다. signed Char의 경우 1 000 0000(-128)~0 111 1111(127)까지 커버가 되고 unsigned는 부호비트가 없이 0000 0000(0)~1111 1111(255)까지 커버되는 방식. 그러니까 unsigned 롱롱 기준으로 2^64까지 들어오는데 거기다가 10^10000 이런거 넣으면 컴퓨터가 미쳤습니까 휴먼 한다.