호우동의 개발일지

Today :

article thumbnail
[유니티 3D] Time.deltaTime의 개념과 활용
Unity Study/Concept 2022. 1. 31. 01:33

Time.deltaTime은 유니티에서 딜레이 계산 등의 시간 계산에서 항상 쓰이는 변수이다. 그런데 정확히 deltaTime이 무엇이고 이걸 굳이 왜 사용해야 할까? deltaTime이란? deltaTime이 무엇인가를 이해하기 위해서는 fps를 먼저 알아야 한다. fps란 frames per second를 뜻하는데 1초에 몇 프레임인가 쉽게 말해서 '1초에 화면이 몇 번 다시 그려지게 되는가?'를 뜻한다. 예를 들어 30 fps라면 1초에 30번 화면이 그려진다는 것이기 때문에 fps가 높을수록 화면이 부드럽게 움직인다. 즉 웬만하면 fps가 높은 것이 좋다고 할 수 있다. 화면이 다시 그려지는 데는 당연히 짧지만 시간이 소요된다. 이를 간격이라는 표현을 사용한다면 그 간격이 바로 deltaTime이..

[C++] 백준/BOJ - 1874 : 스택 수열
Algorithm/BOJ 2022. 1. 30. 15:10

문제 이해 단계 https://www.acmicpc.net/problem/1874 이해하는데만 엄청 오래 걸렸던 문제 같다. 처음에 힌트가 있는 줄도 모르고 예제 케이스 입력이랑 출력 비교해 가면서 어떻게든 이해해 보려고 고생을 했다. 내가 잘못 이해했던 점은 입력으로 들어간 수열로 계산을 하는 게 아니라 입력으로 들어간 수열이 최종적으로 나오는 것이었다. 문제를 간단히 표현하면, 맨 처음 수열의 개수 n이 주어지고 스택에 1부터 n까지를 순차적으로만 넣을 수 있다. 스택에서 꺼낸 숫자는 수열에 추가된다. 이 방식으로 입력에서 넣은 수열을 만들어야 한다. 이때 이뤄지는 과정을 출력하는 건데, push(+), pop(-)로 처리하고 만약 입력 수열을 만들 수 없다면 No를 출력한다. 문제 접근 단계 당연히..

article thumbnail
[C++] 백준/BOJ - 2630 : 색종이 만들기
Algorithm/BOJ 2022. 1. 28. 15:10

문제 이해 단계 https://www.acmicpc.net/problem/2630 문제 이해 자체는 간단했다. 정사각형의 종이가 색이 같지 않다면, 이를 4 등분하여 다시 정사각형을 만든다. 또 만들어진 정사각형에서 종이의 색이 모두 같지 않다면 4등분을 하는 과정을 반복하는 것이다. 이때 파란 색종이와 흰 색종이가 총 몇 장 나오는지 구하는 문제 문제 접근 단계 일단 문제 자체가 재귀함수의 대표문제로 보였다. 4 등분하는 과정을 반복하는데 줄어드는 건 색종이의 크기밖에 없었기 때문이다. 색종이의 각 색깔을 이차원배열에 넣어 판단하는 것이 가장 빠르다고 생각했다. 각 재귀마다 이차원 배열을 생성하는 것은 왠지 메모리 초과나, 시간 초과가 뜰 것 같아, 이차원 배열을 전역변수로 설정했다. 그리고 x좌표와 ..

article thumbnail
[C++] 백준/BOJ - 1966 : 프린터 큐
Algorithm/BOJ 2022. 1. 25. 21:20

문제 이해 단계 해당 문제는 간단해서 이해하는 데는 크게 어려움이 없었다. 그냥 자료구조 '큐' 안에 우선순위가 있는 문서들이 있는데, 우선순위에 따라 출력한다.그중 인덱스 M에 해당하는 문서가 몇 번째로 출력되는지 묻는 문제. 첫 줄에는 이 테스트케이스를 실행할 횟수를 입력한다. 이후에는 문서의 개수 N, 타깃 문서의 인덱스 M, 다음 줄에는 각 자리에 있는 문서의 우선순위를 입력한다. (숫자가 높을수록 우선순위가 높음) 문제 접근 단계 문제 자체는 명료해서 포인트를 우선순위가 중복될 수 있다는 점을 생각했다. 해당 테스트 케이스를 참고하여 문제를 구현하였다. 문제를 해결하기 위해 여러 가지 포인트들이 있었다. 포인트 1. "내가 찾는 문서와 같은 우선순위 문서들을 어떻게 구분할까?" 내가 찾은 방법은..

[C++] 백준/BOJ - 6236 : 용돈관리
Algorithm/BOJ 2022. 1. 21. 15:05

문제 이해 단계 해당 문제는 이해하는데만 해도 30분 정도 걸렸다. 요약하자면 N일 동안 용돈 관리를 하는데, 그날 사용해야 할 금액이 존재한다. 용돈 관리를 하다가 돈이 부족하면 금액 K를 인출한다. 이때, 인출은 M번까지만 가능하다. 이때 조건을 만족하는 최소 금액 K를 구하는 것 문제 접근 단계 1. 위 문제 조건에 부합하는 금액 K를 찾는 것이기 때문에 K의 범위를 점점 줄여나가면서 찾는 탐색을 할까?라고 생각했고, 그중에서 1초라는 짧은 제한시간 때문에 "빠르게 탐색해야 하는 이진탐색 문제가 아닐까 생각했다. 2. 금액 K의 범위를 생각해 봤는데, 그날 써야 하는 금액보다 인출금액 K가 작으면 조건이 성립을 안 한다. 그렇기 때문에, 각 날의 써야 하는 금액 중 가장 높은 금액보다는 무조건 크거..

article thumbnail
동시성 vs 병렬성(Concurrency vs Parallelism)
Computer Science 2021. 11. 26. 18:01

동시성과 병렬성을 비교하기 위해서는 일단 두 가지 개념에 대한 정확한 이해가 필요하다. 동시성 병렬성 시각적으로 동시에 실행되는 것으로 보임(실제로는 X) 실제로 동시에 여러 작업이 실행 논리적인 개념 물리적인 개념 싱글 코어에서 멀티 쓰레드 동작시키는 방식 멀티코어에서 멀티 쓰레드를 동작시키는 방식 여러 일을 한번에 많이 처리 여러 일을 한번에 많이 처리 동시성과 병렬성을 비교하면 위와 같다. 이제 아래에서 하나씩 차근차근 의미를 풀어보도록 하겠다. 동시성과 병렬성의 개념 동시성과 병렬성은 개념적으로 뭐가 다를까? 위의 표와 이름만 보면 크게 다를 게 없어 보일 것이다. 그림을 통해 알아보자. 동시성(Concurrent) 그림처럼 지나가야 하는 문이 있고, 그 앞에 사람들이 두 줄로 서있다고 가정해 보..

article thumbnail
프로세스와 쓰레드의 차이 (Process vs Thread)
Computer Science 2021. 11. 25. 22:09

프로세스와 스레드의 개념 우선 차이점을 알기 위해서 프로세스와 스레드의 개념부터 간단히 살펴보자. 프로세스(Process) : 운영체제로부터 자원을 할당받는 작업의 단위 프로세스는 운영체제에서 다루는 용어인데, 간단히 말해서 현재 실행 중인 프로그램이다. 프로세스에는 Code, Data, Stack, Heap 이 네 가지 형식으로 메모리를 할당한다. 그림은 프로세스와 스레드와의 차이점을 설명하기 위해 그려둔 것이기 때문에 각 형식의 자세한 설명은 하지 않도록 하겠다. 그냥 이런 식으로 구성된다는 것만 알아두면 된다. 프로그램 vs 프로세스 우선 프로세스를 제대로 이해하기 위해선 프로그램과 프로세스를 구별할 줄 알아야 한다. 프로그램은 보조 기억 장치(하드디스크, SSD 등)에 위치하며, 실행될 수 있는 ..