전체 글

전체 글

    [LeetCode] Sqrt(x)

    class Solution { public: int mySqrt(int x) { int s = 0, e = x; int ans = 0; while (s x) e = mid - 1; else { ans = mid; s = mid + 1; } } return ans; } };

    [Python] f-string (문자열)

    기존 문자열 방식 1. 더하기 키워드 person1 = "철수" person2 = "영희" print(person1 + "는 " + person2 + "를 좋아한데요!") 2. % 서식 person1 = "철수" person2 = "영희" print("%s는 %s를 좋아한데요!"%(person1, person2)) 3. str.format 함수 person1 = "철수" person2 = "영희" print("{}는 {}를 좋아한데요!".format(person1, person2)) 이렇게 그동안 사용해오던 문법들은 각 단어가 어느 부분에 전달되는지, 어떤 기호를 빼고 읽어야 하는지 깊게 관찰이 필요하지만 f-string은 매우 직관적이고 가독성이 뛰어나다. person1 = "철수" person2 = ..

    맵 방식 설정 심리스(Seamless), 존(Zone), 룸(Room)

    심리스 (Seamless) 방식 큰 맵을 하나 만들어 맵 이동 시에 새 지역을 로딩없이 자유롭게 이동할 수 있도록 만드는 방식. 유저 캐릭터가 특정 방향으로 움직일 때마다 그만큼 새지역을 로딩하는 구역로딩을 한다. 이 때문에 심리스 방식은 로딩이 없는 것처럼 유저가 느끼게 만든다. 장점) 미리 로딩이 되어있기 때문에 자유롭게 이동이 가능 단점) 미리 로딩을 하는 방식이기에 초반 로딩이 다소 긴 편 존(Zone) 방식 맵을 작은 단위로 나눈 후에 맵에 설정된 입구를 통해 서로 연결한 후 그 위치를 통해 각 맵을 이동하는 방식 입구, 즉 포탈을 통해 맵을 이동하기 때문에 포탈맵 방식이라고도 한다. 장점) 그때마다 필요한 부분만 로딩을 하여 퍼포먼스 및 렉 최적화 단점) 맵을 이동할 때마다 로딩을 해야하는 번..

    [C++] 라운드 로빈 스케줄링 구현 (우선순위 큐 이용)

    EHProcess.h #pragma once #include #include using namespace std; class EHProcess { string pname; //프로그램 이름 const int tjob; //전체 작업량 const int cjob; //cpu 점유 시 수행가능 최대 작업량 int ntjob = 0; //현재 남은 작업량 int ncjob = 0; //현재 cpu 점유 시 수행가능 최대 작업량 public: EHProcess(string pname, int tjob, int cjob); //Idle 상태에서 Ready 상태로 전이 void IdleToReady(); //CPU를 점유하여 실행, 남은 작업량 반환 int Running(); //프로세스 종료 void EndPro..

    [C#] Newtonsoft.Json 사용방법

    먼저 Nuget으로 Newtonsoft.JSON을 다운, 참조한다. 샘플 코드 아래 data1와 data2를 참조하려면 JsonExample 클래스로 받아와야 하는데 이때 제너릭 함수를 활용한다. using System; using Newtonsoft.Json; namespace NewtonsoftExample { class JsonExample { public int data1 { get; set; } public string data2 { get; set; } } class Program { static void Main(string[] args) { // Json 형식의 데이터 var json = "{'Data1' : 1, 'Data2' : 'Test'}"; // Json 형식의 string 값을 ..

    [C#] Visual Studio Nuget 설치

    [도구] -> [Nuget 패키지 관리자] 에서 찾을 수 있다. gui 환경과 콘솔 환경에서 패키지를 다운 받아 사용할 수 있다. [도구] -> [Nuget 패키지 관리자] -> [솔루션용 Nuget 패키지 관리..] 에 들어간다 관련 패키지를 검색한다. [찾아보기] 를 클릭해 해당 패키지를 검색할 준비를 한다. 설치하고 하는 패키지를 입력 및 적용 프로젝트를 선택한다. 설치할 프로젝트를 검색 후, 해당 패키지를 선택한다. 그리고 왼쪽 창에서 적용할 해당 패키지를 선택한다. 그리고 설치를 클릭한다. 예제로 redis 설치하고, hello_world 프로젝트에 적용하겠다. 설치정보를 확인한다. 설치 완료를 아래 출력창에서 확인하다. 출처

    [C#] Nuget이란?

    NuPack 기반의 NuGet은 free and open-source package manager desigend for the MS developer platform 이다. .Net 프레임워크를 위한 소스코드 관리자이다. C# 기반으로 시작되어, 2013년 부터 native c++ 프로젝트를 지원하면서 visual studio에서 가장 대표적인 오픈소스 지원 프로젝트 2010부터 시작되어, 2012 vs 버전 부터는 기본설치로 제공 되었음. NuGet은 visual studio add-in 으로서, .net을 기본으로 하여, c++, cross-platform 지원 등을 통해, 그 범위를 넓혀 다양한 오픈소스 프로젝트들을 지원함으로서, NuGet Eco-System을 구축해 나아가고 있다. 환경 NuG..

    [LeetCode] 153. Find Minimum in Rotated Sorted Array

    class Solution { public: int findMin(vector& a) { int low = 0; int high = a.size() - 1; while (low < high) { int mid = low + (high - low) / 2; if (a[mid] < a[high]) high = mid; else low = mid + 1; } return a[low]; } };

    [Python] pass, continue, break 차이점

    pass 1. 조건문에서 넣어줄 조건이 딱히 없을 경우 2. class 선언할 때, 초기에 넣어줄 값이 없을 때 for i in range(10): if i % 2 == 0: pass print(i) else: print(i) print("Done") 0 1 2 3 4 5 6 7 8 9 Done continue 다음 loop를 실행한다 for i in range(10): if i % 2 == 0: continue print(i) print(i) print("Done") 1 3 5 7 9 Done break 반복문을 멈추고 밖으로 탈출하게 된다 for i in range(10): if i % 2 == 0: break print(i) else: print(i) print("Done") Done https:/..

    [Python] 난수 random 모듈

    import random from random import random, randint random : 0부터 1까지 중에서 소수점 자리의 숫자를 무작위로 추출해준다. random.random() 결과) 0.123123 randit, randrange : 범위 안의 숫자를 선택한다, 차이점은 randrange의 start와 stop 값은 정수만 가능하다. random.randint(3, 10) 결과 10 random.randrange(3, 10, 3) 결과 9 choice, choices, sample : choice 함수를 이용하면 단일값을, choices는 여러 개의 값. temp = range(1, 10) random.choice(temp) 결과 2 random.choices(temp, k = 5)..