과정명 : 내일배움캠프 Unity 게임개발 3기
전체진행도 : 30일차
부분진행도 : Chapter4.1 - 3일차
작성일자 : 2024.02.05(월)
개발일지 목록 : 클릭
1. 진행중인 과정에 대해
강의지급 및 개인과제 3/5일차, 서바이벌 3D게임 강의를 학습중이고, 개인과제는 UI구성까지만 마치고 스크립트 작성을 보류중이다. 슬슬 밤샘각이 보인다. 강의가 어렵지만 굉장히 멋진 구조의 디자인을 하고 있어 보이기 때문에 확실히 학습하면 굉장히 도움이 될 것이다.
+ 오후에 핫식스 도핑하면서 버티던 도중에 눈이 번득 뜨이는 이벤트가 발생했다.
일단 개발일지 목록이 업데이트가 덜 되어 있어서 호다닥 작성했지만 나머지는...
더보기
이쯤 되면 그냥 당당해지기로 했다
2. 오늘 학습에 대해
아침 CodeSolve
바쁘더라도 한 문제 정도는 30분정도 써서 풀어도 괜찮은 것 같다.
다른 날과 마찬가지로 주석으로 상세 내용을 정리한다.
전엔 하지 않았던, 솔루션을 미리 작성해두고 과정을 따라가는 방식을 해 보니 괜찮은 것 같다.
코딩테스트 연습 > 2022 KAKAO BLIND RECRUITMENT > 신고 결과 받기
using System;
using System.Collections.Generic;
public class Solution {
public int[] solution(string[] id_list, string[] report, int k) {
int[] answer = new int[id_list.Length];
// 솔루션
// Dict1 : {"{ID}":{받을 메시지 수}}
// Dict2 : {"{ID}":{List<string> ID를 신고한사람 목록}}
// 1. Dict1과 Dict2를 초기화
// 2. foreach문으로 report 순회하며 Dict2를 채운다
// 3. Dict2를 순회하며 List의 길이가 k 이상일 경우,
// 해당 리스트를 키로 갖는 Dict1의 값을 모두 1 더한다
// 1. Dict1과 Dict2를 초기화
// (Dictionary 안의 자료형으로 List<> 그냥 써 봤는데 왜 되는거야...)
Dictionary<string, int> dict1 = new Dictionary<string, int>();
Dictionary<string, List<string>> dict2 = new Dictionary<string, List<string>>();
foreach(string id in id_list){
dict1[id] = 0;
dict2[id] = new List<string>(){};
// Console.WriteLine(dict2[id].Count);
}
// 2. foreach문으로 report 순회하며 Dict2를 채운다
foreach(string msg in report){
string[] parts = msg.Split(' ');
string userA = parts[0];
string userB = parts[1];
if(!dict2[userB].Contains(userA))
dict2[userB].Add(userA);
}
// 3. Dict2를 순회하며 List의 길이가 k 이상일 경우,
// 해당 리스트를 키로 갖는 Dict1의 값을 모두 1 더한다
// 찾아보기: 사전형의 순회
foreach(var item in dict2){
if(item.Value.Count>=k){
foreach(string user in item.Value){
dict1[user] += 1;
}
}
}
// 4. answer 배열에 dict1의 내용 옮기기
for(int i=0;i<id_list.Length;i++){
answer[i] = dict1[id_list[i]];
}
return answer;
}
}
- Dictionary 안의 자료형으로 제네릭 (예:List<>) 을 사용 해 보았다.
- Dictionary<string, List<string>> dict2 = new Dictionary<string, List<string>>();
- 사전형의 순회법
- foreach(var item in dict2){ //Item.Key나 Item.Value로 접근 }
3. 과제에 대해
- 주어진 강의 흡수(남은 게 많다. 큰일. 오늘은 밤샘이다. 그래도 방향성은 잡힌 것 같다.)
- 개인과제 스크립트 부분 이어서 착수
반응형
'다이어리 > 내일배움 개발일지' 카테고리의 다른 글
게임개발캠프 - 개인과제(C) 5일차 (0) | 2024.02.07 |
---|---|
게임개발캠프 - 개인과제(C) 4일차 (0) | 2024.02.07 |
게임개발캠프 - 개인과제(C) 2일차 (0) | 2024.02.02 |
게임개발캠프 - 개인과제(C) 1일차, 팀 셔플 (0) | 2024.02.01 |
게임개발캠프 - 팀과제(C) 6일차, 과제 발표 (0) | 2024.01.31 |