Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

동구의_C# & Unity_개발일지

2024.04.01 내일배움캠프 67일차 TIL_Unity (최종 프로젝트, 알고리즘, 기술 면접) 본문

최종 프로젝트

2024.04.01 내일배움캠프 67일차 TIL_Unity (최종 프로젝트, 알고리즘, 기술 면접)

mongle_0l 2024. 4. 1. 11:30

공식적인 훈련 과정 중 마지막 달인 4월이 시작되었다!!

공휴일, 주말을 빼고 계산을 해보니 21일밖에 안 남았다...

 

오늘은 NPC와 대화 중 퀘스트 수락을 하면 퀘스트를 받아와 퀘스트 UI창에 띄우기를 구현하려는데 실패했다..

오늘까지 최대한 해보고 안되면 도움을 요청해야겠다 ㅠ


알고리즘 코드카타 50일차

모의고사

문제 설명
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요.
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++)
        {
            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();
    }
}


기술면접 연습하기 19일차

자료구조의 종류는 무엇이 있으며 각각 어떤 차이점이 있는지 설명해주세요
a. 위 자료구조는 무조건 좋은가요?
배열(Array): 일련의 요소를 순차적으로 저장하는 자료구조이다. 요소에 직접 접근할 수 있어 빠른 접근이 가능하다. 크기가 고정되어 있으며, 요소를 추가하거나 삭제하는 것이 어렵다.
연결 리스트(Linked List): 각 요소가 데이터와 다음 요소를 가리키는 포인터로 구성된다. 삽입 및 삭제가 배열보다 효율적이다. 중간에 요소를 추가하거나 삭제할 때 특히 유용하다. 요소에 직접 접근하는 데는 시간이 더 많이 소요된다.
스택(Stack): 후입선출(LIFO, Last In First Out) 원칙에 따라 데이터를 저장하는 자료구조이다. 데이터를 추가하거나 제거하는 데는 상단(마지막으로 추가된 요소)에서만 가능하다. 주로 함수 호출 및 재귀 알고리즘에서 사용된다. 큐(Queue): 선입선출(FIFO, First In First Out) 원칙에 따라 데이터를 저장하는 자료구조이다. 데이터를 추가하거나 제거하는 데는 앞과 뒤에서 모두 가능하다. 프로세스 관리, 네트워크 패킷 처리 등에 사용된다.
트리(Tree): 계층적으로 구성된 데이터를 표현하는 자료구조이다. 이진 트리(Binary Tree) 등 다양한 형태로 구성될 수 있으며, 데이터 검색 및 정렬에 사용된다.
이진 탐색 트리(Binary Search Tree)는 효율적인 검색 및 정렬이 가능하다.
해시 테이블(Hash Table): 키와 값을 한 쌍으로 저장하는 자료구조입니다. 해시 함수를 사용하여 키를 값의 위치로 변환한다. 빠른 데이터 검색과 삽입이 가능하며, 키의 중복을 피할 수 있다.

아니다. 각 자료구조는 특정한 문제나 상황에 더 나은 해결책을 제공하지만, 그 자체로는 모든 상황에 완벽하게 적합하지는 않다. 따라서 문제의 성격과 조건에 따라 적합한 자료구조를 선택하는 것이 중요하다.

최종 프로젝트