[프로그래머스] H-Index
·
코딩테스트/프로그래머스
1. 문제 설명  2. 이중 포문#include using namespace std;int solution(vector citations) { int answer = 0; unordered_map m; for(int n : citations) { for(int i = 0; i 논문의 수가 1000개 이하이고, 인용 횟수가 10,000이하라고 주어져서 높은 시간 복잡도 알고리듬을 요구하는 문제구나 싶었어요. 삼중 포문 쓸 생각까지 해야겠네 라고 예상을 했지만, 의외로 이중포문으로 해결할 수 있었습니다. 만약 인용횟수가 5로 주어지면 0~5까지의 "~이상 인용 횟수"를 1증가시켜주는 방식으로 작동합니다. 나름 논리적인 접근이라고 생각하며 만족했지만, 다른 사람의 풀이..
[코딩테스트] 자릿수 정렬
·
코딩테스트/알고리듬
1. while 문 활용int n = 897324711;vector v; // 각 자릿수를 벡터로 변환while(n > 0){ v.push_back(n%10); n/=10;}// 오름차순 정렬sort(v.begin(), v.end()); // 원소 출력for(int i : v){ cout 지금까지 활용해온 자릿수 치환 방법인데요. 자릿수를 정렬해서 출력하라는 문제에서 유용하게 활용했습니다. 하지만, 이보다 더 간단한 방법이 있었다는 것 .. string을 활용하면 단 한줄로도 해결이 될 것 같더라구요.2. string 활용 **int n = 897324711; string s = to_string(n);sort(s.begin(), s.end()); cout 완전 코드..
[코딩테스트] 원형 연속부분수열 합
·
코딩테스트/알고리듬
1. 삼중 for문int n = elements.size(); set s; for(int i=1; i= n) { index %= n; } sum += elements[index]; } s.insert(sum); }}vector의 원소가 {1, 2, 3, 4, 5}라고 가정을 했을 때 삼중 포문의 로직은 원소가 1개 일 때 → 원소가 2개 일 때 → 원소가 3개 일 때 → ... → 원소가 5개 일 때 처럼 원소의 개수를 순차적으로 체크해 나가는 방식이다. 문제를 풀고 난 후 굉장히 뿌듯해 했지만, 다른 분들의 코드를 참고 해보니 알고리듬에 유연하지 못 한 사고방식으로 구현한 로직..
[TheFourthDescendant] 05. 적 NavLink로 점프 구현
·
언리얼 엔진/[팀프로젝트] The Fourth Descendant
프로젝트 기간 : 25.02.17 ~ 25.03.05 (약 3주) 1. 개요생각해보니까 플레이어가 높은 지대로 올라가면 적은 어떻게 동작할까 궁금하더라구요. 바로 테스트해봤죠 ! 뭔가 제가 그렸던 그림은 부자연스럽더라도 적이 알아서 올라오는 그림이었는데, 결과는 저에게 고민거리를 던져주었습니다 ..이게 뭐냐구요 ㅠㅠ .. 그나마 못 오는 건 이해하겠는데 왜 공격 모션이 재생되는 걸까요 .. 바로 알아보죠 !!2. 원인이것저것 자료 조사를 해보니 적이 도달할 수 없는 영역으로 이동 했을 때에 MoveTo가 이동을 완료했다는 Notify를 보낸다고 하더라구요. 때문에 해당 Notify를 받고 "이동에 성공했구나 !"라고 판단을 하고 공격 상태로 전이가 된 것이었습니다 ..3. 해결 방법그렇다면 적이 Move..
[TheFourthDescendant] 04. 적 충돌 무시 구현
·
언리얼 엔진/[팀프로젝트] The Fourth Descendant
프로젝트 기간 : 25.02.17 ~ 25.03.05 (약 3주) 1. 개요근거리, 원거리 적 구현을 마무리 하고 다음 구현으로 넘어가기 위해 적 AI에 대해 마무리 구현을 진행했습니다. 정신없이 개발을 하다보니 포스트가 늦었네요 ㅎㅎ.. 4일동안 꽤 많은 작업을 진행했는데 그 중에서도 적 AI 마무리 구현에 대해서 포스트를 진행할 예정입니다.2. 적 - 플레이어 충돌 무시 처리이전에는 플레이어와 적 사이에 충돌을 처리하게 되어 있어서 플레이어가 다수의 적을 마주했을 때 가로막히는 현상이 있었습니다. 사용자 입장에서 조금 답답함을 느낄 수 있겠다 싶어서 플레이어와 적 사이의 충돌을 무시하도록 수정해주었습니다 ! 플레이어가 적과 충돌을 무시하고 통과하는 모습을 볼 수 있습니다 ~~3. 문제 발생충돌 무시 ..
[코딩테스트] value 값을 기준으로 정렬
·
코딩테스트/알고리듬
1. 개요key-value의 쌍으로 값을 저장하는 자료구조인 map이 있다. map은 기본적으로 key 값을 기준으로 정렬이 된다. 하지만 value 값으로 정렬을 하고자 할 때에는 어떻게 해야할까 ? 번거롭기는 하지만 map을 vector>으로 옮긴 후 second 값을 기준으로 sort를 해주면 된다.2. 코드#include #include #include int main(){ map m = { { 1, 3 }, { 5, 4 }, { 2, 1 } }; vector> v(m.begin(), m.end()); sort(v.begin(), v.end(), [](const auto& a, const auto& b){ return ..
[프로그래머스] 멀리 뛰기
·
코딩테스트/프로그래머스
1. 문제 1234567로 나눈 나머지를 리턴하라는 부분이 있다면 오버플로우가 발생할 가능성이 있다는 의미인 것 같다. 실제로 이 문제를 조합을 활용해서 풀었는데 오버플로우로 인해 문제를 해결할 수 없었다. 다른 방법을 찾아봤고 사람들은 피보나치 수열을 활용하여 풀었다고 한다.. 어떻게 이 문제를 보고 피보나치를 떠올릴 수 있었을까 ..2. 조합 코드long long solution(int n) { long long answer = 0; int m = n/2; int left = 0; int right = n; do{ long comb = 1; // 조합 값 저장 for (int i = 0; i = l..
[TheFourthDescendant] 03. 근거리 적 AI 구현
·
언리얼 엔진/[팀프로젝트] The Fourth Descendant
프로젝트 기간 : 25.02.17 ~ 25.03.05 (약 3주) 1. 개요오늘은 근거리 적 AI를 구현하는 게 목표였습니다. 근거리는 확실히 원거리에 비해 쉽게 구현할 수 있었어요. 어떻게 구현했는지 천천히 살펴봅시다 !2. 근거리 적 AI 분석다행히도 Spawn된 이후에 정찰하는 상태 없이 바로 플레이어에게 돌진하더라구요 ! 덕분에 Patrol 상태를 구현하지 않고 신속한 개발을 진행할 수 있었습니다. Spawn 애니메이션이 끝나면 Move 애니메이션으로 전이되고, 플레이어의 일정 반경 내로 도달하면 Attack 애니메이션으로 전이하면 끝이였습니다.Attack 애니메이션이 재생되면서 적이 이동하지 않게끔 bool 값만 잘 설정해주면 될 것 같아보입니다.3. 근거리 적 Behavior TreeSpawn..