Unreal 개발 본 캠프 48일차

HappyCircle·2026년 2월 4일

Unreal 개발

목록 보기
65/163

📘 TIL – 코딩테스트「신고 결과 받기」

1. 처음 내가 접근했던 코드 (원본)

unordered_map<string,set<string>> id_map;
unordered_map<string,set<string>> mails;

for(int i=0; i<id_list.size(); i++){
    id_map[id_list[i]] = {};
}

for(int j=0; j<report.size(); j++){
    auto it = report[j].find(" ");
    string id = report[j].substr(0,it);
    string reporter = report[j].substr(it+1);
    id_map[reporter].insert(id);
}

for(int j=0; j<report.size(); j++){
    auto it = report[j].find(" ");
    string id = report[j].substr(0,it);
    string reporter = report[j].substr(it+1);
    int report_num = id_map[reporter].size();
    if(report_num >= k){
        mails[id].insert(reporter);
    }
}

✔️ 당시 의도

  • set을 사용해 중복 신고 제거
  • 신고 정보를 한 번 모아서
  • 조건에 맞으면 메일 발송

문제점

  • ❌ 1. 기준이 잘못 잡힘 (관점 오류)

    • int report_num = id_map[reporter].size();
    • 이 코드는 reporter(신고당한 사람)가 몇 명을 신고했는지 세고 있음.
    • 문제는 신고당한 횟수(k) 기준으로 설정해야 함.
  • ❌ 2. 자료구조의 키가 문제 조건과 안 맞음

    • id_map[reporter].insert(id);
    • 이 구조는 신고당한 사람(target) → 자신이 신고한 사람들로 되어있음.
    • 필요한 구조는 신고당한 사람(target) → 자신을 신고한 사람들이다.
  • ❌ 3. k 판단과 메일 분배가 동시에 섞여 있음

    • 문제 문장에서 "마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송"이라고 되어 있음.
    • 하지만 코드에서는 신고를 다시 돌면서 즉시 메일 분배를 시도함.
    • 2-pass 구조가 필요함: 집계 → 정지 대상 확정 → 메일 분배.

2. 정석 코드 접근 (고성능 unordered_set 버전)

🔹 핵심 사고 전환

“모든 판단의 기준은 신고당한 사람(target) 이다”

Step 1. (신고자, 신고대상) 중복 제거

unordered_set<string> uniq;

for (const string& r : report) {
    int sp = r.find(' ');
    string reporter = r.substr(0, sp);
    string target   = r.substr(sp + 1);

    uniq.insert(reporter + " " + target);
}
  • 문제 문장: “동일한 유저에 대한 신고 횟수는 1회로 처리” → 전역 중복 제거가 먼저 필요.

Step 2. 신고당한 횟수 집계 (target 기준)

vector<int> reportedCount(n, 0);

for (const string& key : uniq) {
    int sp = key.find(' ');
    string target = key.substr(sp + 1);
    reportedCount[idx[target]]++;
}
  • 문제 문장: “k번 이상 신고된 유저는 게시판 이용 정지” → target 중심 집계.

Step 3. 정지 대상 확정

vector<bool> banned(n, false);
for (int i = 0; i < n; i++) {
    if (reportedCount[i] >= k)
        banned[i] = true;
}
  • 여기서 정지 대상이 확정됨.

Step 4. 메일 분배 (정지된 target만)

vector<int> answer(n, 0);

for (const string& key : uniq) {
    int sp = key.find(' ');
    string reporter = key.substr(0, sp);
    string target   = key.substr(sp + 1);

    if (banned[idx[target]]) {
        answer[idx[reporter]]++;
    }
}

📘 커리어 데이

1. 게임 개발에서 AI 적용

🔸 Unity

  • 통합 AI 툴셋 중심.
  • 텍스트 프롬프트 기반 자산 생성.
  • 반복 작업 자동화 (에셋 변형, 배치, LOD 등).
  • 👉 콘텐츠 생산성 극대화에 초점.

🔸 Unreal Engine

  • 전통적 접근.
  • Behavior Tree + Blackboard를 사용하여 명시적 상태 전이 및 조건 기반 의사결정.
  • 현재/미래 접근: Persona Device, 챗봇형 NPC 개념.

👉 AI의 역할

  • AI가 ‘개발자 대신 구현’이 아니라 ‘개발자 사고를 연결’하는 역할.

2. AI 적용 영역과 미래 전망

🔹 Project Genie

  • AI 기반 월드/콘텐츠 생성 자동화.

🔹 기대되는 변화

  1. 개발 효율성 증대.
  2. 무한한 콘텐츠 창작.
  3. 몰입형 플레이어 경험.
  4. 새로운 게임 장르 출현.
  5. 개발 생태계 구조 변화.

🔹 남아 있는 과제

  • 품질 유지 vs 자동화.
  • 윤리적/법적 문제.
  • 설명 가능성 (Explainability).
  • 플레이어 경험 훼손 가능성.
  • 리소스/비용 문제.

3. 자동차·디지털 트윈 업계 채용 인사이트

🔹 자동차 업계 채용 트렌드

  • 기존: TQA (품질 보증 소프트웨어 개발).
  • 현재: IVI (In-Vehicle Infotainment) → Graphics Engine 기반.

🔹 디지털 트윈 채용 관점

  • 코딩 테스트 여전히 필수.
  • 3N, 네카라쿠배 대비 난이도 낮음.
  • 엔진 활용 능력 + 도메인 지식.

🔹 글로벌 디지털 트윈 사례

  • BMW, 롤스로이스, 지멘스 → 공장/현장 시뮬레이션 중심.

🔹 국내 동향

  • 제조 기업 다수: “아직 추진 계획 없음”.
  • 성장 여지 큼.

4. 연봉과 커리어에 대한 현실적인 관점

연봉 상승 조건

  • 개인 성장.
  • 회사 성장.
  • 시장 성장.

주의사항

  • 돈을 버는 것과 개발을 잘하는 것은 별개.

5. 언리얼 엔진의 응용 가능성

  • 언리얼은 게임 엔진이 아니라 실시간 시뮬레이션 엔진.
  • 게임 외 산업: 자동차, 항공, 제조, 건축/도시.
  • 👉 활용 분야를 넓게 보는 시야가 중요.

6. 디지털 트윈 포트폴리오 전략

🔹 도메인 지식 관심 없는 경우

  • 기본적으로 "도메인을 좋아하는 사람" 정도로 접근.
  • 개발 실력(엔진, 코딩)이 핵심.

🔹 도메인 지식에 관심 있는 경우

  • 도메인 이해 필수.
  • 회사의 세일즈 포인트를 엔진으로 어떻게 표현할지 제안.

7. AI 시대 개발자의 역할

  • AI 개발자 대체 ❌.
  • AI를 연결하고 활용하는 개발자가 중요.

스페셜리스트 vs 제네럴리스트

  • 방향성에 따라 전략적으로 선택.

8. 어떻게 준비해야 할까

🔹 필수

  • CS 기초.
  • UI 프레임워크 하나는 끝까지 파보기.
  • 코딩 테스트 준비.

🔹 코딩 테스트 로드맵

  1. 기초 복습.
  2. 알고리즘 기본서 + 응용서.
    • 《C로 배우는 알고리즘 1·2》
    • 《Introduction to Algorithms》
    • 《SICP》
  3. 문제 풀이 반복.
    • 《코딩 인터뷰 완전 분석》

9. 지원서 & TIL의 중요성

  • 지원서 문서 실수 = 감점.
  • TIL은 채용 과정에서 실제로 참고됨.
  • 성실함 + 사고 깊이를 보여주는 자료.
  • 면접에서 TIL에 적은 주제로 질문 많이 나옴 → 적은 내용은 반드시 숙지 필요.
profile
개발합시다!

0개의 댓글