본문 바로가기

분류 전체보기

(69)
Unity 공간분할트리 using System.Collections.Generic;using UnityEngine;using Random = UnityEngine.Random;public class TreeData{ // 현재 영역의 Level public int level = 0; public int maxValue = 2; public int currentValue = 0; public Rect area; public List nodeList; // 다음 Level의 영역을 생성한다. public void NextLevelNode() { if (nodeList != null) return; nodeLis..
[C++] 고정수소점, 부동소수점 고정소수점 고정 소수점이란 10진수를 2진수로 바꾼 다음 해당 값을 그대로 수소점에 삽입하는 방법이다. 맨 앞 1자리는 부호 비트를 사용하고 나머지 비트들을 소수점을 기준으로 정수부와 소수부를 표현하는 데 사용하게 된다. 이때 소수점의 위치는 미리 정해둔다. 그리고 소수부는 점의 뒤부터 채우면 비어있는 곳은 0으로 채우게 된다. 이러한 고정소수점 방식은 구현하기 편리하지만 사용하는 비트 수 대비 표현 가능한 수의 범위 또는 정밀도가 낮기 때문에 실수를 다룰 필요가 있는 범용 시스템에서 거의 안 쓰이고, 높은 정밀도가 필요 없는 소규모 시스템에 사용하게 된다. 부동소수점 부동소수점의 경우에는 2진수로 변화한 값을 그대로 추가하는 게 아닌 정규화 과정을 거치고 삽입하게 된다. 변화하는 방법은 지수부에 1만 ..
[코딩테스트] 프린터 문제 코드 #include #include #include using namespace std; struct Data { int value; int number; }; int solution(vector priorities, int location) { int answer = 1; vector vec; for (int i = 0; i < priorities.size(); i++) { Data t; t.value = priorities[i]; t.number = i; vec.emplace_back(t); } int count = 0; while (!vec.empty()) { bool check = true; for (int i = 0; i < vec.size(); i++) { if (vec[count].v..
[코딩테스트] 더 맵게 문제 코드 #include #include using namespace std; int solution(vector scoville, int K) { int answer = -1; priority_queue qu(scoville.begin(), scoville.end()); while(!qu.empty()) { int scovilleValue = qu.top(); qu.pop(); if (scovilleValue < K) { if (qu.empty()) answer++; else { qu.push(scovilleValue + (qu.top() * 2)); qu.pop(); answer++; } } if (qu.empty() && scovilleValue < K) return -1; } return ans..
[코딩테스트] 숫자 문자열과 영단어 문제 코드 #include #include using namespace std; int toNumbeer(string str) { if (str == "orez") return 0; else if (str == "eno") return 1; else if (str == "owt") return 2; else if (str == "eerht") return 3; else if (str == "ruof") return 4; else if (str == "evif") return 5; else if (str == "xis") return 6; else if (str == "neves") return 7; else if (str == "thgie") return 8; else if (str == "enin") ..
[코딩테스트] 오픈채팅방 문제 코드 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; vector split(string s, string divid); vector solution(vector record) { vector answer; unordered_map userData; for (string action : record) { vector str = split(action, " "); string id; string name; if (str[0] != "Leave") { id = str[1]; name = str[2]; userData[id] = name; } } for (string action : record..
[코딩테스트] 카펫 문제 풀이 #include #include #include #include using namespace std; vector solution(int brown, int yellow) { vector answer; int sum = brown + yellow; for (int i = 1; i
[코딩테스트] 타겟 넘버 문제 풀이 #include #include #include using namespace std; int DFS(vector numbers, int target, int death, int sum, int answer); int solution(vector numbers, int target) { int answer = 0; answer = DFS(numbers, target, 0, 0, 0); return answer; } int DFS(vector numbers, int target, int death, int sum, int answer) { if (numbers.size() == death) { if (sum == target) { return answer + 1; } return answer; }..