최종프로젝트 1일

박희태·2024년 3월 6일
1

최종프로젝트

목록 보기
1/17

알고리즘

오늘의 알고리즘 문제는 37번 행렬의 덧셈. 을 풀었다.

public class Solution
{
        public int[,] solution(int[,] arr1, int[,] arr2)
        {
            // 배열의 각 차원에 있는 요소의 수를 구한다
            int length1 = arr1.GetLength(0);
            int length2 = arr1.GetLength(1);

            int[,] answer = new int[length1, length2];

            // 배열의 덧셈 계산
            for (int i = 0; i < length1; ++i)
            {
                for(int j = 0; j < length2; ++j)
                {
                    answer[i,j] = arr1[i,j] + arr2[i,j];
                }
            }

            return answer;
        }
}

lenght1.2로 각 차원에 있는 요소의 수를 구하였다. 그리고 2차원 배열이기때문에 이중for문을 사용하여 배열의 숫자를 증가시켜가며 덧셈을 진행하는 방식으로 해결하였다.

최종프로젝트 회의

최종프로젝트의 제목은 에어앤후크로 결정하였다.
조원들과 회의를 하면서 다이어그램을 작성하였다.

나는 최종프로젝트에서 캐릭터를 담당하기로 했는데 총 2개의 캐릭터를 만들고 각각 캐릭터의 로직을 다르게 작성해야하기때문에 관련 자료를 찾아 제작을 이어갈 생각이다. 먼저 갈고리를 사용하는 캐릭터인 후크는 Grappling Hook Rope에 관련된 자료를 찾아보면서 제작하고 산나비관련모작영상이 있어서 그것을 보고 자료를 찾을 예정이다.
다음으로 공기총액션을 사용하는 에어는 커비의 액션이 비슷하다고 판단되어 관련 자료를 찾아보던중 SmoothDamp 메서드를 사용했다는 정보를 찾아냈다. 앞으로 이것에 관해 정보를 찾으면서 제작을 이어갈 예정이다.
일단 캐릭터의 이동과 스테이트머신을 최우선순위로 제작한 다음 로직을 짜는 방식으로 개발할것이다.

기술면접 답변

오늘부터 새로시작하는 기술면접연습하기의 답변을 적어볼것이다.
첫날 기술면접문제는

float와 int의 표현 가능한 수의 범위가 다른 이유는 무엇인가요?

이다. 먼저 내가알고있는점은 소수점까지 표현가능하다 아니다로 구분을 하고있었기때문에 다른이유는 자세히 알지못했다. 또한 double형과 다르게 둘다 4바이트(32비트) 로 크기도 같은걸로 알고있기때문에 다른이유가 더있나? 하는 상태로 검색을 시작하였다.
찾아본결과 두 자료형이 다른 이유는 비트구조가 다르기 때문이었다.
int형은 부호비트 1비트를 제외한 31개의 비트가 수를 표현하기때문에
표현범위는 -2,147,483,648 ~ 2,147,483,647 까지가 된다. (-2^31 ~ 2^31-1)
그러나 float형은 값을 2진수로 표현한 후 부호, 지수, 유효숫자로 나누어 메모리에 저장한다. 이때 부호 1비트, 지수 8비트, 유효자리 23비트로 표현하게된다. 이때 표현가능한값은 3.4E-38 ~ 3.4E+38 ( 3.4 x 10^-38 ~ 3.4 x 10^38 ) 이다. 이방법을 사용했을때 엄청 큰 수를 표현할수있지만 유효자리비트로 표현할수 있는 한계를 넘어가게되면 근사치를 취하게된다는 단점이있다.
따라서 float와 int의 표현 가능한 수의 범위가 다른 이유는 int와 float의 지수비트의 유무차이라고 답변할수 있을것이다.

profile
초보개발자

0개의 댓글