목록전체 (32)
개발 공부
앞전의 글인 엄청난 부자2 와같이 c++로 하게되면 어려워지는 문제! 조건을 살펴보면 10진수로 1,000자리를 넘지 않으며 여기서 1000자리를 보고 그냥 1000을 넘지 않는다고 생각을 해서 왜 안될까 했는데 다시 살펴보니.... 자리수...? 1뒤로 0이 999개???? 역시 오버플로우... 최대로 들어올 수 있는수가 너무 크다.. c++에서 int형은 대략 -21억 ~ 21억까지 표현가능 => 최대 10자리수 까지 표현가능 파이썬에서는 자체적으로 Big integer를 지원해줘 따로 처리할 필요없이 짧게 A = int(input()) B = int(input()) print(A+B) print(A-B) print(A*B) 이렇게 구현가능...! 나같은 코딩애기는 자리수 나오면 파이썬으로....ㅠㅠ
브론즈5...? 입력값의 조건이 첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 10^1000, m과 n은 10진수 정수) >> c에서는 10^1000이라는 큰 수를 정수형으로 표현할 수 없음... (10^20만 하더라도 100000000000000000000 , long의 범위는 2,147,483,647) 따라서 오버플로우로 인해 문제가 틀린게 됨!! 브론즈 5인 이유는 파이썬으로 하면 쉬워진다!!! 파이썬은 정수 연산을 할 때 처음에는 int자료형을 사용하다가 정수 오버플로우가 발생할 것 같으면 자동으로 long을 사용하는 방식을 통해 정수 오버플로우의 발생을 막는다, >> long은 무제한의 자릿수를 제공하는 정수형을 의미하는 Arbitr..
코딩테스트를 준비하며 다른사람들의 풀이를 살펴보면 C++에서 cin보다 scanf를 사용한 경우를 많이 볼 수 있었다. 학교에서 배운 기억으로는 C++에서의 표준입력은 cin으로 알고 있었는데 cin과 scanf에는 무슨 차이가 있는지 찾아 보았다?? 1. cin - iostream헤더 파일에 입력 스트림을 나타내는 객체로 정의 - 문자열, 수, 문자 등 다양한 데이터형을 서식문자 없이 변수형에 맞게 자동으로 입력해준다. - cin은 키보드로 입력한 값을 저장할 변수가 받아들이는 형태로 알아서 바꿔서 저장한다. cin과 scanf의 차이점 - 알고리즘 문제 해결에 있어서, scanf와 printf가 입출력 속도가 훨씬 빠르다고 한다 - whitespace의 저장에도 차이가 있는데 cin은 문자를 받을 때..
: 물리 메모리보다 큰 프로세스를 실행시 물리 메모리 크기 한계를 극복하기 위해 사용 어떻게 사용? - 프로세스 이미지를 모두 메모리에 올릴 필요는 없음 - 현재 실행에 필요한 부분만 메모리에 올린다. - 오류처리 제외, 배열 일부 제외, 워드 프로세스에서 정렬, 표 기능 제외 >> 동적 적재(dynamic loading)과 비슷한 개념 ● Demand Paging - 프로세스 이미지는 backing store(H/W)에 저장 - 프로세스는 페이지의 집합 - 지금 필요한 페이지만 메모리에 올린다.(load) >>요구되는(demand) 페이지만 메모리에 올린다. ● 하드웨어 지원 - valid비트 추가된 페이지 테이블 : 메모리에 없으면 0, 있으면 1 - backing store (= swap devic..
●프로세스를 논리적 내용(=세그멘트)로 잘라서 메모리에 배치 -프로세스는 세그먼트의 집합 - 세그멘트의 크기는 일반적으로 같지 않다. ●세그멘트를 메모리에 할당 MMU 내의 재배치 레지스터 값을 바꿈으로써 CPU는 프로세스가 연속된 메모리 공간에 위치한다고 착각 MMU는 세그먼트 테이블이 된다. 주소변환 ●논리주소 : CPU가 내는 주소는 세그멘트 번호(s) + 변위(d) ● 주소변환 : 논리 주소 -> 물리주소 - 세그멘트 테이블 내용 : base + limit - 세그멘트 번호(s)는 세그멘트 테이블 인덱스 값 - s에 해당되는 테이블 내용으로 시작 위치 및 한계값 파악 - 한계(limit)을 넘어서면 segment violation 예외상황 처리 - 물리주소 = base[s] + d Limit Ba..