본문 바로가기

TIL

[TIL]2024-3-06 / 50일차 - 최종 프로젝트 시작날

KeyVisual

1. 오늘의 기술 면접 질문 - float와 int의 표현 가능한 수의 범위가 다른 이유는 무엇인가요?

답안 : 

   int와 float은 같은 메모리 양임에도 float이 소수점도 표현 가능한 등 차이가 존재하는데 이는 값을 저장하는 방법의 차이 때문입니다. 그러면 원리는 모르더라도 float만 쓰면 되지 않느냐라는 의문이 들 수 있는데 세부적으로 둘이 각각 배정된 32비트를 어느 구조로 배분하느냐는 차이가 생깁니다. 요점은 이러한 차이로 인해 float은 소수점을 표현할 수 있지만 그를 넘어서게 되면 (소수점에서는 흔하게 일어날 수 있는 상황) 근사치를 취하게 됩니다. 즉 표현할 수 없는 부분은 잘라버리고 비슷한 값을 가져가는 것으로 정확도가 100%가 아니게 됩니다. 그에 반해 int는 오직 있는 비트만을 표현해주면 되기에 100%의 정확도를 가지게 됩니다. 그렇기에 소수점이 필요 없는 자료형이라면 int가 장점을 가지게 됩니다.

 

2. 오늘의 알고리즘 코드카타 - 모의고사

답안 :

//로직을 어떤 식으로 짜야할 지 어려움이 있었기에 인터넷 검색을 하였고
//문제풀이를 보며 같은 식으로 작성해보았습니다.

using System;
using System.Collections.Generic;

public class Solution {
    public int[] solution(int[] answers) {
        //각 수포자의 패턴, 이부분이 하드코딩이지만 문제풀이는 더 간단해진다.
        int[] supo1 = new int[5] {1, 2, 3, 4, 5};
        int[] supo2 = new int[8] {2, 1, 2, 3, 2, 4, 2, 5};
        int[] supo3 = new int[10] {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
        int[] score = new int[3] {0, 0, 0};
        int max = 0;
        List<int> nList = new List<int>();
        
        for(int i = 0; i < answers.Length; i++)
        {
            //각 수포자가 선택한 답이 맞는지 체크하는 for문
            if(supo1[i % 5] == answers[i]) { score[0]++; }
            if(supo2[i % 8] == answers[i]) { score[1]++; }
            if(supo3[i % 10] == answers[i]) { score[2]++; }
        }
        //산출된 점수들 중에서 가장 높은 값을 찾는 역할
        for(int i = 0; i < 3; i++) { if(max < score[i]) { max= score[i]; } }
        //그 가장 높은 값을 낸 수포자를 찾는 역할
        for(int i = 0; i < 3; i++) { if(max == score[i]) { nList.Add(i+1); } }
        
        return nList.ToArray();
    }
}

 


3. 오늘의 작업

 

오늘은 이전에 되어있던 초기 기획에서 살을 붙이는 시간이 되었다.

씬 플로우 / 역할 분담

 

간단한 기능 기획

 

 

키 비주얼

 

 

 

팀 WBS

 

 

나는 아무래도 프로그래머 보다는 기획자가 되기를 원하다 보니 코드적으로, 포폴적으로 욕심나는 파트나 중요한 파트들은 다른 팀원들에게 양보했다. 물론 내가 실력이 더 떨어져서도 있지만 말이다.

 

대신 위에 자료들과 WBS와 같은 문서화와 같은 작업이나 자료 준비, 이후 그래픽 리소스 준비 등을 통해 작업물의 전체 완성도를 높이고자 한다.