호우동의 개발일지

Today :

article thumbnail
[C#] 하드웨어 최적화 - 메모리 베리어(Memory Barrier)
C#/Concept 2023. 5. 2. 22:26

사용하는 이유 CPU가 코드 재배치 public class Program { static int x = 0; static int y = 0; static int r1 = 0; static int r2 = 0; static void Thread1() { y = 1; r1 = x; } static void Thread2() { x = 1; r2 = y; } static void Main(string[] args) { while (true) { x = y = r1 =r2 = 0; Task task1 = new Task(Thread1); Task task2 = new Task(Thread2); task1.Start(); task2.Start(); Task.WaitAll(task1, task2); // 두 쓰레드..

article thumbnail
[C#] Nullable(널러블)이란? + 사용법
C#/Concept 2023. 4. 19. 21:03

Nullable이란? Nullable은 Null + able의 합성어로 C#에서 제공하는 새로운 문법이다. Nullable은 변수형 타입을 의미하는데, 변수형을 Nullable로 만들면 값으로 Null을 가지지 못하는 변수형도 Null 값을 가질 수 있다. 사용 방법 ? 키워드 사용 방법은 간단하다. public static void Main(string[] args) { //선언하는 방법 int? ex1 = null; bool? ex2 = null; float? ex3 = 3f; // 값 수정 ex1 = 3; ex2 = true; ex3 = 4.0f; // 값 대입 int a = ex1.Value; //값 호출하는 방법 Console.WriteLine($"ex1 :{ex1.Value}"); Consol..

article thumbnail
[C++] 백준 22945 - 팀 빌딩
Algorithm/BOJ 2023. 4. 13. 22:32

문제 이해 단계 https://www.acmicpc.net/problem/22945 22945번: 팀 빌딩 능력치가 다 다른 개발자 $N$명이 팀 빌딩을 위해 한 줄로 서있다. 하나의 팀을 만들기 위해서는 개발자 2명이 반드시 모여야 한다. 개발자 A와 개발자 B가 팀을 만들 때 팀의 능력치는 아래와 같 www.acmicpc.net 능력치가 다 다른 N명이 입력으로 들어온다. 이 중에서 2명을 뽑아서 값을 만들 때, 값을 구하는 공식은 아래와 같다. (A와 B 사이에 존재하는 다른 사람 수)*min(A, B) 이러한 조건일 때 나올 수 있는 값의 최대치를 구하는 문제 문제 접근 단계 문제풀이를 위해 조건부터 살펴보자. 들어올 수 있는 사람 N은 최대 100,000까지 가능하고, 능력치는 10,000까지 ..

article thumbnail
[Unity 3D/VR] XR Interaction Toolkit으로 HMD 생성 및 시뮬레이터로 사용

HMD 새로운 Scene 생성 File → New Scene → Standard(URP) 선택 저장 장소는 Scenes 폴더 안에 적당한 이름으로 저장 XR Origin 게임 오브젝트 생성 Hierarchy 창에서 우클릭 → XR → XR Origin(VR)을 클릭 XR Origin(VR) 게임 오브젝트는 뭘까? HMD나 컨트롤러 등 연동된 장비의 기준이 되는 오브젝트 VR/AR 세상의 중심이나, 헤드셋 기준 높이 등을 설정할 때 사용 일반적으로 HMD와 연동된 메인 카메라 게임 오브젝트와 양손 컨트롤러와 연동된 게임 오브젝트 등을 자식으로 배치 자동적으로 메인 카메라가 XR Origin 게임 오브젝트의 자식 오브젝트로 들어감 XR Interaction Mananger라는 게임 오브젝트도 함께 생성 Ma..

[C++] 백준/BOJ - 7682 : 틱택토
Algorithm/BOJ 2023. 4. 9. 17:16

문제 이해 단계 https://www.acmicpc.net/problem/7682 7682번: 틱택토 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 줄은 9개의 문자를 포함하며, 'X', 'O', '.' 중 하나이다. '.'은 빈칸을 의미하며, 9개의 문자는 게임판에서 제일 윗 줄 왼쪽부터의 순서이다. 입 www.acmicpc.net 3x3 게임판에 O와 X 두 가지를 가지고 게임을 한다. 무조건 X를 먼저 두는 것을 시작으로 X와 O를 번갈아가면서 둔다. 게임에서 이기는 조건은 X나 O가 가로, 세로, 대각선 방향으로 3칸을 잇는 데 성공하는 것이다. 이를 틱택토라고 부르겠다. 틱택토를 성공하는 순간 게임은 즉시 끝난다. 게임판이 가득 차도 게임은 끝난다. 입력으로는 게임판의 최종상태가 주어지는..

[OS] 시스템 콜(2) - 시스템 콜의 유형 정리

다섯 가지 중요한 범주로 묶을 수 있음 → 프로세스 제어, 파일 조작, 장치조작, 정보 유지 보수, 통신과 보호 1. 프로세스 제어 실행 중인 프로그램은 수행을 정상적 또는 비정상적으로 멈출 수 있어야 한다. 시스템 종류에 따른 제어 차이 정상 또는 비정상적인 상황에서, 운영체제는 명령 인터프리터로 제어를 전달한 상태 ← 사실 운영체제는 명령 인터프리터로 제어를 전달해야 함 대화식 시스템 단순히 다음 명령을 계속 수행 사용자가 오류에 대응하여 적절한 명령을 내릴 것이라고 가정함(사용자에게 맡김) GUI 시스템 비정상적인 상황이라면, 팝업창이 사용자에게 오류를 알리고 지시를 기다림 기타 시스템 오류가 발생한 경우, 제어 카드를 사용하여 특별한 복구 조치를 지시 오류 발견 뒤 비정상적으로 종료하기를 원한다면..

[C++] 프로그래머스 Level 3 - 인사고과
Algorithm/Programmers 2023. 3. 28. 14:56

문제 이해 단계 입력으로 사원의 정보가 주어지는데 각각 (근무 태도 점수, 동료 평가 점수)로 이루어져 있다. 목표는 사원의 등수를 정하는 것이다. 이 중에서 다른 사원과 비교했을 때, 한 번이라도 다른 사원보다 두 점수가 둘 다 낮은 사원은 등수에서 제외한다. 그리고 등수는 점수가 높은 순으로 선정한다. 동점자가 존재하면 그 사원은 같은 등수이고, 그 뒤에 등수 하나가 없어진 등수가 다음 사원에게 간다. 해당 조건에서 가장 처음에 들어온 입력(인덱스 0) 사원의 등수를 구하는 문제 제외됐다면 -1을 출력 문제 접근 단계 문제의 제한 사항부터 살펴보자. scores의 길이, 그러니까 사원의 최대 수와 점수의 최댓값은 100,000이다. 여기서 더하는 행위는 근무 태도 + 동료 평가 밖에 없기 때문에 In..

article thumbnail
[C++] 백준/BOJ - 3079 : 고냥이
Algorithm/BOJ 2023. 3. 27. 19:56

문제 이해 단계 https://www.acmicpc.net/problem/16472 16472번: 고냥이 고양이는 너무 귀엽다. 사람들은 고양이를 너무 귀여워했고, 결국 고양이와 더욱 가까워지고 싶어 고양이와의 소통을 위한 고양이 말 번역기를 발명하기로 했다. 이 번역기는 사람의 언어를 고 www.acmicpc.net 소문자로 이루어진 알파벳 문자열이 주어진다. 또한 입력으로 N이 주어지는데, 서로 다른 종류의 알파벳을 인식할 수 있는 개수이다. 구해야 하는 것은 N개의 서로 다른 종류의 알파벳을 인식할 수 있을 때, 주어진 문자열에서 인식할 수 있는 연속된 문자열 중 최대 길이를 구하는 문제 문제 접근 단계 늘 그렇듯, 제한사항부터 알아보자.입력 N은 최대 26까지, 문자열의 길이는 최대 100,000..