분류 전체보기
OS가 하는 일 및 컴퓨터 구조
OS가 하는일 OS는 응용프로그램간 하드웨어 사용을 조정하고 데이터를 관리한다. 사용자 관점 사용자가 어떻게 사용하느냐에 따라 달라진다. 예를 들어 데스크탑 같은 범용 컴퓨터는 주로 사용의 용이성에 집중하고, 스마트폰 같은 경우는 배터리와 낮은 퍼포먼스 때문에 연산을 적게하고 들고다니며 사용하기 쉽게하기 위해 인터페이스를 간소화한다. 시스템 관점 자원을 어떻게 해야 효율적으로 관리할 지를 결정하는 역할을 한다. Computer System Operation 현대의 컴퓨터 구조는 CPU, 메모리, 디스크, USB, 그래픽 어댑터로 구성된다. 컴퓨터가 구동을 하기 위해선 하드웨어를 초기화 하고 OS를 메모리에 적재할 프로그램에 가지고 있어야하는데 이를 bootstrap program이라 부른다. bootst..
[실1] 15724 - 주지수
#include #include using namespace std; #define SIZE 1050 int n, m, t, arr[SIZE][SIZE]{ 0 }; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for (int i = 1; i a; arr[i][j] = a + arr[i - 1][j] + arr[i][j - 1] - arr[i - 1][j - 1]; } } cin >> t; while (t--) { int x1, x2, y1, y2; cin >> x1 >> y1 >> x2 >> y2; cout
[실4] 1120 - 문자열
#include #include #include using namespace std; int main() { string a, b; cin >> a >> b; int aLength = a.size(), bLength = b.size(); int res = INT_MAX; for (int i = 0; i
C# 난수 생성 Random 클래스
1. C# random(랜덤) 클래스에 대해서. 랜덤 클래스가 정의 되어있는 곳을 살펴보면 아래 캡쳐와 같다. 1. 랜덤클래스는 System 네임스페이스 안에 속해있다. Random 클래스는 namespace System 괄호 안에 존재한다. Systen 네임스페이스는 C# 파일을 만들면 자동으로 포함되어있기 때문에 Random 클래스를 사용하기 위해서 특별히 무언가를 추가한다거나 할 필요가 없다. 2. 랜덤클래스 객체를 생성하는 방법 (생성자) Random 변수명 = new Random();: new 키워드와 생성자를 이용해서 Random 타입의 객체를 생성한다. 3. 랜덤클래스의 Next() 메서드 Next() 메서드는 임의의 정수를 반환하는 메서드(멤버 함수) 입니다. (음수는 나오지 않음, n>=..
C++ 난수 생성 std::random + 생성 시간 측정하는 std::chrono 라이브러리
#include #include int main() { // 시드값을 얻기 위한 random_device 생성. std::random_device rd; // random_device 를 통해 난수 생성 엔진을 초기화 한다. std::mt19937 gen(rd()); // 또는 미리 범위를 지정 할 수가 있음 // std::mt19937 gen(1234); // 0 부터 99 까지 균등하게 나타나는 난수열을 생성하기 위해 균등 분포 정의. std::uniform_int_distribution dis(0, 99); for (int i = 0; i < 5; i++) { std::cout
C 난수 생성
C언어 프로그래밍에서 코드를 작성하다보면 무작위의 숫자가 필요한 경우가 존재한다. 보통 무작위 숫자를 난수라고 표현한다. C언어에서 난수를 표현하기 위해서는 stdlib.h 헤더파일에 포함되어있는 rand()라는 함수를 사용하면 된다. ☞ rand()함수 사용법 #include #include // rand() 함수 포함 라이브러리 int main() { int random = 0; // 정수형 변수 선언 for (int i = 0; i < 10; i++) { // 10번 반복 random = rand()%9; // 난수 생성 printf("%d\n", random); // 출력 } } 8번째 줄에 random = rand()%9; 라는 코드가 있다. 해석하면 rand() 함수에 의해 난수를 생성하고 그..
[실4] 3986 - 좋은 단어
#include #include #include using namespace std; int main() { int n, res = 0; cin >> n; while(n--) { string str; cin >> str; stack s; for (int i = 0; i < str.size(); i++) { if(!s.empty() && s.top()==str[i]) { s.pop(); continue; } s.push(str[i]); } if (s.empty()) res++; } cout
C++ 데이터 타입(data type)
1. 변수 선언하기 타입명을 적고 띄우고, 변수명을 적는다. 공백은 스페이스 탭등이 여러개 들어가도 된다. 콤마(,)로 구분하여 여러개를 한번에 선언할 수 있다. int a; int b, c, d; 2. 변수값 초기화 선언과 동시에 초기화 한다. int value = 0; 함수 호출 처럼 초기화 할 수 도 있다. int value(0); 여러개를 한번에 초기화 할 수도 있다. int a = b = c = 0; 콤마(,)로 분리해서 여러개를 초기화 할 수 도 있다. int a = 0, b = 1; 선언 후에 초기화 해도 된다. int a; a = 1; 3. 데이터 타입 C++에는 아주 많은 데이터 타입이 있다. C++ 언어의 데이터 타입이 가지는 저장공간은 컴파일러마다 다를 수 있다. 이 글은 Visual..
Overflow (오버플로우)
오버플로우(overflow)의 의미 - 각 데이터타입은 자료형에 맞는 저장의 최대/최소 범위가 존재한다. int number; 라고 선언하자. number는 변수의 이름이며 그 앞에 있는 int는 변수의 타입이다. int형 자료형은 4바이트의 정수형 타입으로 음수를 고려하고 있기 때문에 number가 저장할 수 있는 최대값은 2의31승-1이고, 이 값은 곧 2147483647 이다. (약 21억) 따라서 number 변수에는 약 21억까지 저장이 가능하다. 그런데 만일 코드에서 number 변수에 저 최대 숫자 이상을 넣는다면 어떻게 될까? 이와 같이 저장할 수 있는 최대범위를 넘어설때 이를 "오버플로우(overflow)" 라고 부른다. 오버플로우(overflow)의 법칙 - number의 최대저장가능값..
[Unreal] 포인터 널 체크는 조심히 하도록 하자
UStaticMeshComponent* StaticMeshComp; // 아래 널 체크는 예기치않은 크래시를 초래할 수 가 있음. if(StaticMeshComp) 또는 if(StaticMeshComp != nullptr) // 아래 함수를 이용하도록 하자. 삭제 대기중인지, 개비지컬렉터가 수집을 안했는지까지 확인해준다. if(IsValid(StaticMeshComp))