본문 바로가기

분류 전체보기

(81)
[TIL]2024-4-05 / 65일차 - 최종 프로젝트 5주차 5일차 1. 오늘의 알고리즘 코드카타 - 둘만의 암호 //처음에는 그냥 풀어보고 있다가 //다른 사람 풀이를 통해 훨씬 간소화 해봤다가 //Linq를 이용해 푸는 풀이를 또 보게 되었는데 //Linq를 이용하는 것이 가장 짧았다. 이곳에는 그 풀이를 참고하여 적는다. using System; using System.Linq; public class Solution { public string solution(string s, string skip, int index) { string answer = ""; string a = new string("abcdefghijklmnopqrstuvwxyz".Where(x => !skip.Contains(x)).ToArray()); // skip이 x값을 포함하지 않고 있다..
[TIL]2024-4-04 / 64일차 - 최종 프로젝트 5주차 4일차 오늘의 코드카타는 오전에 피곤하여 시간 내에 다 풀지 못해서 다음으로 미뤄졌다. 1. 오늘의 기술 면접 자료구조의 종류는 무엇이 있으며 각각 어떤 차이점이 있는지 설명해주세요
[TIL]2024-4-03 / 63일차 - 최종 프로젝트 5주차 3일차 1. 오늘의 알고리즘 코드카타 - 대충 만든 자판 답안 : using System; using System.Collections.Generic; public class Solution { public int[] solution(string[] keymap, string[] targets) { var dict = new Dictionary(); for(int i = 0; i < keymap.Length; i++) { string keyStr = keymap[i]; for(int k = 0; k < keyStr.Length; k++) { char c = keyStr[k]; dict[c] = dict.ContainsKey(c) ? Math.Min(k, dict[c]) : k; } } // dictionary에..
[TIL]2024-4-02 / 62일차 - 최종 프로젝트 5주차 2일차 오늘의 알고리즘 코트카타는 오전에 밀린 기술면접 문제를 푸느라 패스했다. 1. 오늘의 기술 면접 - 스택, 힙 메모리란 무엇이며 어떤 차이가 있는지 비교해서 설명해주세요. 스택 메모리는 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 메모리로 함수의 호출과 함께 할당되고 완료와 함께 소멸합니다. 스택 영역은 푸시로 저장, 팝으로 데이터를 내보내는 후입 선출의 방식에 따라 작동하여 메모리의 높은 주소에서 낮은 주소의 방향으로 할당됩니다. 장점은 힙에 비해 빠르고, 함수에 종료에 따라 소멸되므로 별다른 관리가 필요 없다. 힙 영역은 사용자에 의해 메모리 공간이 동적 할당 해제되는 영역으로 런 타임에 사용하는 메모리가 들어가게 됩니다. 스택과는 반대로 낮은 주소에서 높은 주소의 방향으로 할당됩니다. 런 ..
[TIL]2024-4-01 / 61일차 - 최종 프로젝트 5주차 1일차 1. 오늘의 코드카타 - 문자열 나누기 답안 : //오랜만에 봐도 문제 설명이 쉽지않다. 예시가 없다면 이해하기 어려웠을 것 //어떤 형식으로 분해를 시켜야 할까 고민하다 너무 지저분한 코드가 되어가서 //다른 답안을 참고하게 되었다. 여기서는 인덱스를 세분화한 것과 //bool체크를 통한 것이 다른 점이다. //코드가 복잡해지던 원인이 새로운 문자의 시작지점을 판단하는 것이었는데 //이러한 체크가 더 깔끔해진 것이다. public class Solution { public int solution(string s) { int answer = 0; // 분해한 문자열의 개수 int sameIdx = 0; // 같은 문자열 개수 int diffIdx = 0; // 다른 문자열 개수 char word = ' ..
[TIL]2024-3-20 / 60일차 - 최종 프로젝트 3주차 3일차 1. 오늘의 기술 면접 질문 - 델리게이트(Delegate)의 개념에 대해 설명해주세요. 답안 : 델리게이트는 대리자라는 뜻으로, 메소드를 간접적으로 호출하기 위해 대리자 선언하여 참조시킬 수 있습니다. 메서드 파라미터와 리턴 타입에 대한 정의를 한 후, 동일한 파라미터와 리턴 타입을 가진 메서드를 서로 호환해서 불러 쓸 수 있는 기능으로, 특정 메소드를 처리할 때 그 메소드를 직접 호출하는 것이 아닌 델리게이트로 참조 시켜 부르는 것으로 사용할 수 있으며 이때에는 반환형과 매개 변수 종류, 갯수가 모두 일치해야 합니다. 이를 이용해 콜백 메서드나 구독 패턴을 구현할 수 있다. 또한 델리게이트 체인을 통해 여러 개의 메서드를 연결할 수 있다. 2. 오늘의 알고리즘 코드카타 - 체육복 답안 : //3가지 ..
[TIL]2024-3-19 / 59일차 - 최종 프로젝트 3주차 2일차 오늘은 오전에 튜터님과 기술면접 + 자기소개 등을 준비했어야 하기에 알고리즘 코드카타는 풀 시간이 없었다. 1. 오늘의 기술면접 - 제네릭이란 무엇인가요? 답안 : 제네릭은 형식 매개 변수 개념으로 클래스 또는 메서드가 선언되고 인스턴스화될 때까지 하나 이상의 형식 지정을 연기하는 클래스 및 메서드를 디자인할 수 있도록 해줍니다. 제너릭 클래스를 이용하면 특정 데이터 형식과 관련이 없는 작업을 캡슐화합니다. 컬렉션에서 항목을 추가하고 제거하는 등의 작업은 저장되는 데이터의 형식과 관계없이 기본적으로 동일한 방식으로 수행됩니다. 데이터 타입 자체를 타입 파라미터로 받아 정의합니다. 2. 오늘 작업 오늘은 주차를 마친 후 합치는 과정을 하기 위해 데모 맵 제작에 들어갔다. 그런데 생각보다 비어있는 로직이 많..
[TIL]2024-3-18 / 58일차 - 최종 프로젝트 3주차 1일차 1. 오늘의 기술 면접 질문 - 배열과 List, ArrayList, Dictionary 의 차이점을 설명해주세요 배열 - 연속된 메모리 공간으로 이루어져 메모리 관리가 용이하며 순서대로 되어있기에 그에 맞춰 index로 이루어져 접근을 빠르게 할 수 있다. 하지만 동적 할당이 불가하여 크기가 정적이다. (단점 - 할당된 메모리 블록은 사용하지 않아도 고정되어 있어 메모리 낭비가 발생 가능) (사용처 - 변경 가능성이 없는 고정된 수의 요소가 있고 비순차적인 방식으로 자주 엑세스를 해야할 때 편리) 리스트 - 리스트는 C#에서 제너릭 형식의 List로 제공되어 크기가 동적이다. 순차적으로 요소를 추가하고 제거하는 데에 편리하고 제너릭 형식이기에 박싱 언박싱이 일어나지 않아 이점이 있지만, 리스트는 다음 ..