1. 오늘의 알고리즘 코드카타 - 대충 만든 자판
답안 :
using System;
using System.Collections.Generic;
public class Solution {
public int[] solution(string[] keymap, string[] targets)
{
var dict = new Dictionary<char, int>();
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에서 검색 후 출력
int[] answer = new int[targets.Length];
for(int i = 0; i < targets.Length; i++)
{
string targetStr = targets[i];
for(int k = 0; k < targetStr.Length; k++)
{
if(!dict.TryGetValue(targetStr[k], out int index))
{
answer[i] = -1;
break;
}
answer[i] += index + 1;
}
}
return answer;
}
}
다른 사람들 답안 <더 간략함> =
public class Solution {
public int[] solution(string[] keymap, string[] targets) {
int[] answer = new int[targets.Length];
int sum = 0;
int count = 0;
for(int i = 0; i < targets.Length; i++)
{
for(int j = 0; j < targets[i].Length; j++)
{
count = press(keymap, targets[i][j]);
if(count == -1)
{
sum = -1;
break;
}
sum += count;
}
answer[i] = sum;
sum = 0;
}
return answer;
}
public int press(string[] keymap, char ch)
{
int min = -1;
for(int i = 0; i < keymap.Length; i++)
{
for(int j = 0; j < keymap[i].Length; j++)
{
if(keymap[i][j] == ch)
{
if(min == -1) min = j + 1;
else if(min > j) min = j + 1;
break;
}
}
}
return min;
}
}
2. 오늘의 기술 면접 - 값 형식과 참조 형식의 차이에 대해 설명해주세요.
값 형식의 경우 자료형 int / float 등이나 구조체 struct 등으로 나타나며 데이터가 스택 영역에 저장되고
참조형은 string, 클래스, 델리게이트나 인터페이스 등으로 나타나며
동적 메모리로서 힙 영역에 저장되어 스택 메모리에 힙 메모리의 주소를 저장하게 됩니다.
3. 오늘의 작업물
새로운 캐릭터 스폰/리스폰 포인트를 만들어 주었다. 하수구 구멍에서 나오는 듯한, 묘하게 막 다뤄지는 실험체 캐릭터들의 처우를 보여주는 느낌으로 하였다.
팀원이 베이스를 만들어 둔 화살 트랩에 스프라이트를 추가하고 추가적인 작업을 하였다.
플레이어를 추적하고 발사-재장전의 루틴을 가진다.
팀원이 베이스를 만들어둔 화염방사기의 오브젝트 스프라이트와 화염방사 이펙트 쉐이더를 만들었다.
아직 발사 초입 부분에서 살짝 어색함이 보여 나중에 시간이 되면 추가적인 수정을 할 것 같다.
옛날에 만들어둔 레이저 발사기에 스프라이트를 추가해줬다.
'TIL' 카테고리의 다른 글
[TIL]2024-4-05 / 65일차 - 최종 프로젝트 5주차 5일차 (0) | 2024.04.05 |
---|---|
[TIL]2024-4-04 / 64일차 - 최종 프로젝트 5주차 4일차 (0) | 2024.04.04 |
[TIL]2024-4-02 / 62일차 - 최종 프로젝트 5주차 2일차 (0) | 2024.04.02 |
[TIL]2024-4-01 / 61일차 - 최종 프로젝트 5주차 1일차 (1) | 2024.04.01 |
[TIL]2024-3-20 / 60일차 - 최종 프로젝트 3주차 3일차 (0) | 2024.03.20 |