_

Always be tactful

728x90

Insights (종료) 16

[CS] 1.1 + 0.1 != 1.2인 이유

컴퓨터에서 실수는 어떻게 저장될까? 컴퓨터는 모든 정보를 2진수로 표현한다. 실수 역시 2진수로 표현해 RAM에 저장하게 되는데, 이 과정에서 실수 값 일부가 손실되어 정확한 값이 아닌 근삿값을 저장하게 된다.  예를 들어, 0.1을 2진수로 표현하면 0.00011001100110011...이라는 무한소수가 된다. 숫자 하나를 저장하는 bit는 통상적으로 32비트이므로 뒷부분이 잘려나가게 되고, 이로 인해 오차가 발생하여 실제로 저장되는 값은 0.10000000000000000555...가 되어 미세한 오차를 발생시킨다. ▶ 자료형 double을 활용하자. C언어라면 double 자료형을 활용해서 숫자 하나당 64비트를 배정하여 오차를 급격하게 줄일 수 있지만 메모리 용량이 2배가 필요하다는 단점이 있다..

[Python] 리스트를 뒤집는 방법 세 가지

리스트를 뒤집는 3가지 방법 [::-1] 리스트를 역순으로 슬라이싱 하는 방법이다. 새로운 리스트를 만들 필요 없이 기존의 리스트를 뒤집어 반환한다. 하지만 슬라이싱을 활용해 뒤집는 경우 리스트의 크기가 매우 크다면 메모리를 필요 이상으로 낭비하게 될 수 있다. reverse() 원본 리스트를 직접 뒤집기 때문에 메모리 사용량이 적다. 하지만 원본 리스트가 변경되기 때문에 원본 리스트를 유지하고 싶다면 사용하지 않아야 한다. reversed() 반환하는 값이 iterator이기 때문에 원본 리스트가 바뀌지 않으면서 메모리 사용량이 적다. 하지만 바로 사용할 수는 없어 list()를 통해 리스트 형태로 변환 후 사용하게 된다.결론 원본 리스트를 변경해도 상관 없는 경우 → reverse() 원본 리스트를 ..

[GitHub] 최근 커밋 완전히 삭제하기

모든 과정은 터미널을 열어 Git 명령어를 입력함으로써 진행됩니다. 로컬 저장소에서 커밋 삭제하는 방법부터 원격 저장소에 반영하기까지의 내용입니다.커밋만 삭제하고 변경 사항 유지git reset HEAD^ 최근 1개의 커밋을 삭제git reset HEAD~n 최근 n개의 커밋을 삭제 커밋과 변경 사항 모두 삭제git reset --hard HEAD^ 최근 1개의 커밋을 삭제 git reset --hard HEAD~n 최근 n개의 커밋을 삭제 브랜치 확인 및 원격 저장소 반영git branch 현재 작업 중인 브랜치 이름을 모른다면 위 Git 명령어를 통해 확인하실 수 있습니다.git push origin main --force 만약 main 브랜치가 아니라면 main 대신 해당 브랜치 이름을 입력해 주시..

[Python] 백준 11718번: EOFError가 발생하지 않는다고?

sys.stdin.readline()은 빈 문자열을 반환한다!import syswhile True: try: userInput = sys.stdin.readline().strip() print(userInput) except: break EOFError(End of File)는 파일의 끝, 즉 입력의 끝을 의미한다. input()은 파일의 끝에서 EOFError를 발생시키지만, sys.stdin.readline()은 빈 문자열을 반환하므로 EOFError를 발생시키지 않는다. 따라서 출력 초과로 인한 오답 처리가 되는 것이다.while True: try: print(input()) except: break 물론 이렇게 간..

[Python] 백준 2675번: 이스케이프 문자 처리

이스케이프 문자 이스케이프 문자는 문자열 내에서 특별한 역할을 한다. 그리고 일반적으로 백슬래시(\)가 이스케이프 문자로 쓰인다. 이스케이프 문자는 바로 뒤에 오는 문자와 조합하여 다양한 특수 기능을 하기 때문에 취급에 주의해야 한다.이스케이프 시퀀스\n줄 바꿈\t탭\\백슬래시\'작은따옴표\"큰따옴표디버깅을 통해 이스케이프 문자 처리 확인하기 \uXXXX는 유니코드 이스케이프 시퀀스다. 따라서 \u03B1은 그리스 문자 α를 나타낸다. 문자열로 변수 test1에 할당한 경우 'α'가 할당되었으며, 원시 문자열로 변수 test2에 할당한 경우 '\\u03B1'가 할당된 것을 확인해 볼 수 있다. 참고로 원시 문자열이라고 함은 문자열 앞에 r을 붙여 표시한 것을 말한다.  디버깅을 해보며 알게 된 사실은 내..

728x90