분류 전체보기

문제 '큰 수의 법칙'은 일반적으로 통계 분야에서 다루어지는 내용이지만 동빈이는 본인만의 방식으로 다르게 사용하고 있다. 동빈이의 큰 수 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정한 인덱스 (번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다. 예를 들어 순서대로 2, 4, 5, 4 ,6으로 이루어진 배열이 있을 때 M이 8이고, K가 3이라고 가정하자. 이 경우 특정한 인덱스의 수가 연속해서 세 번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5인 46이 된다. 단, 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으..
문제 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야 할 동전의 최소 개수를 구하라. 단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다. 문제의 기본 개념은 '가장 큰 화폐 단위부터' 돈을 거슬러 주는 것이다. exchange.c #include int main(){ int coin[4] = {500,100,50,10}; int exchange; int count = 0; printf("put exchange: "); scanf("%d",&exchange); for(int i = 0;i < 4;i++){ for(;1;){ if(exchange < c..
· Study/TCP_IP
윈도우 기반으로 구현할 땐 헤더파일이 약간 다르다. 일단 프로젝트의 속성에서 링커 하위에 있는 추가 종속성에 ws2_32.lib을 추가해주자. (위치는 다를 수 있다) 윈도우에서의 소켓은 윈속이라고 부른다. 윈속의 초기화를 살펴보자 #include int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData); ->성공 시 0, 실패 시 0이 아닌 에러코드 값 반환 wVersionRequested -> 프로그래머가 사용할 윈속의 버전정보 전달 lpWSAData -> WSADATA라는 구조체 변수의 주소 값 전달 wVersionRequested 변수는 Word 형으로 전달하여야 한다. 예를 들어 1.2버전의 윈속을 사용한다면 0x0201을 전달해야 한다. 소수점..
· Study/TCP_IP
이 글은 윤성우의 열혈 TCP_IP프로그래밍 책을 공부하면서 쓰는 글 입니다. 소켓 프로그래밍은 전화기에 비유 할 수 있다. 전화기는 송 수신이 한번에 이루어지는 양방향 통신구조이지만 소켓은 그렇지 않다. 일단 전화기에 해당하는 소켓을 생성하는 함수이다. #include int socket(int domain, int type, int protocol); -> 성공 시 파일 디스크립터, 실패 시 -1반환 전화를 구입하면 전화국 직원이 가설도 해주고 전화번호도 할당해 주지만, 소켓은 우리가 직접 가설을 해야한다. bind함수는 소켓에 주소정보를 할당하는 함수이다. #include int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen); -> 성공..
예를 들어 여러 씬이 있다 가정한다. A씬에서 버튼을 눌러서 B씬으로 이동한다고 생각해보자 그렇다면 B씬은 로딩이 되고 다시 A씬으로 돌아갔다가 다시 B씬으로 갈 때 B씬의 start함수는 실행이 될까? start함수는 씬이 호출되고 메모리에 등록이 될 때 한번만 실행된다. 따라서 start함수를 여러번 동작시키고 싶다면 차라리 Database 스크립트를 만들었다면 초기화가 필요한 변수들은 함수에 등록시키고 함수를 씬이 이동할때 혹은 버튼을 눌렀을때 호출시켜주면 된다.
게임을 구현하다 보면 플레이어를 카메라 안에 가둬야 할 때가 있다. 예를 들어서 이동하는 플레이어를 따라다니지 않는 카메라인 경우 카메라는 고정되어있으니 플레이어가 계속 움직인다면 언젠가는 플레이어가 카메라 밖으로 나갈 것이다. 따라서 월드좌표계를 뷰포트 좌표계로 변환하여 플레이어를 카메라 안으로 가둘 때 사용할 수 있는 코드를 첨부한다. Vector3 pos = Camera.main.WorldToViewportPoint(transform.position); if (pos.x 1f) pos.x = 1f; if (pos.y 1f) pos.y = 1f; transform.position = Camera..
코루틴을 공부하면서 얻은것 코루틴은 게임 실행 중 제어권을 넘겨받아서 처리하는 기법? 이라고 이해는 했다. 그래서 코루틴이 뭐냐 IEnumerator FadeOut() { Color fade = fadeImg.color; for (float ff = 0f; ff < 1f;) { ff += 0.01f; fade.a = ff; fadeImg.color = fade; yield return new WaitForSeconds(0.01f); } SceneManager.LoadScene("GameScene"); } StartCoroutine(FadeOut()); IEnumerator 라는 반환값을 적어주면 자동으로 코루틴 함수가 생성된다. 항상 코루틴의 반환값은 yield return 으로 리턴하고 null값 혹은..
유니티 게임 개발 중 나중에 다른 게임에서도 쓸만한 기능이나 몰랐던 기능 떠올랐던 알고리즘 등 정리하기 위해 만든 블로그입니다. 2022.01.01 하이퍼 캐쥬얼 게임 개발중
LKM0222
'분류 전체보기' 카테고리의 글 목록 (11 Page)