분류 전체보기
-
[Algorithm] 백준 5052 전화번호 목록 - C++, 트라이쾌락없는 책임 (공부)/알고리즘 문제풀이 2023. 10. 7. 19:44
5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net #include #include #include #include using namespace std; struct Trie { bool bIsTerminal; Trie* Children[10]; Trie() : bIsTerminal(false), Children() {} ~Trie() { delete [] Children; } void Insert(const string& InputNumber) { Trie* CurTrie = this; ..
-
[C++] vector 는 2배씩 늘어나는게 맞을까?쾌락없는 책임 (공부)/C++ 짜잘이 2023. 9. 21. 20:50
개요 벡터는 용량이 부족하면 더 큰 용량을 할당한 뒤 그곳으로 복사를 한다고 다들 알고 있을 겁니다. 여기서 더 큰 용량 을 생각할 때 '벡터는 당연히 2배씩 용량 늘어나겠지' 싶었습니다. 그런데 일을하면서 사수분이 생겼고 이 사수분이 이런 논제를 하나 던져줬습니다. '진짜 2배씩 늘어나는지 찍어보셨나요?'. 이걸 듣고 핫차 싶어서 시간 날 때 바로 테스트를 해보기로 했습니다. 결론은 마냥 2배는 아니다. 그냥 간단하게 2, 4, 8...등으로 늘어날 수 있게 유도해 봤습니다. 코드는 아래 접은 글에 있습니다. 더보기 #include #include using namespace std; int main() { vector vec; cout
-
[C++] Branchless 가 얼마나 잘 작동할까?쾌락없는 책임 (공부)/C++ 짜잘이 2023. 8. 23. 18:30
개요 원래는 큰 생각 없었던 부분인데 유튜브 알고리즘 덕분에 생각해 볼 자료를 가지게 되었습니다. 이곳에서 Branchless에 대한 이야기를 하고 있었습니다. 저 같은 경우 학교 컴시구에서 if 구문이 명령어로 변경되었을 시 true, false 중 한곳을 맞다고 생각하고 가정한 뒤 계산을 하다가 그 가정이 틀리게 되면 이전 계산을 중지한 뒤 새 계산을 한다는 이론을 알고 있었습니다. 그래서 if문이 없으면 더 빠르지 않을까? 하고 막연하게만 생각해 왔습니다. 이번 영상을 보면서 제 생각이 마냥 옳다는 게 아니라는 걸 알아내서 이번 기회에 이에 대해 한번 적어보려고 합니다. 간단한 메모용으로요. 단순 수 비교에 있어서는 Branchless 보다 컴파일러가 더 믿을만하다 영상 초입에서 나오는 문제사항으로..
-
[뿌직] 스마일게이트 UNSEEN 1기 수료 후기작은 똥/뿌직 2023. 8. 18. 18:50
합격 후기는 이곳으로 [뿌직] 스마일게이트 UNSEEN 프로그램 합격 후기 개요 첫 합격 후기지만 일단 취업 후기는 아닙니다. 스마일게이트와 에픽게임즈에서 새롭게 진행하는 UNSEEN이라는 언리얼 교육 프로그램입니다. 일단 이곳에 합격하게 되어서 4개월간 언리얼 관 husk321.tistory.com 개요 23년 7월 25일을 기점으로 스마일게이트 UNSEEN 1기 수료를 완료했습니다. 4개월이 조금 넘는 시간 동안 개인 프로젝트도 많이 진행을 했고 여러 활동을 거쳐갔습니다. 저 스스로 많은 성장을 했다고 느낀 활동이라 이때의 느낌을 두고두고 되돌아보기 위해 후기를 남기게 되었는데요. 앞으로 2기가 출범이 될지 모르겠지만 2기가 나왔을 때 대략 '이런 활동을 한다'라는 느낌을 줄 수 있는 글이 되었으면 ..
-
[Unreal] Spectator 에서 스팀 이름 가져오기쾌락없는 책임 (공부)/Unreal 2023. 7. 14. 23:28
개요 일단 이걸 하기 전 Online Subsystem Steam 플러그인을 활용하고 이를 통해 세션을 제작해야 합니다. 이 과정을 거치면 PlayerState에서 PlayerName이 스팀의 닉네임으로 설정됩니다. 그리고 이번 글에서 알려드릴 건 이 스팀 닉네임을 Spectator에서 가져오는 것입니다. Spectator Pawn 에서 관전자를 변경하는 방법 일단 다른 게임에서 보이듯 죽고 나서 관전할 플레이어를 변경할 수 있는 기능을 구현했습니다. 이는 GameMode에서 Spectator Pawn으로 할당하는 Pawn 클래스에서 관리를 하는데 아래 코드와 같은 모습입니다. void AFASpectatorPawn::SpectateNextPlayer() { if (APlayerController* Pl..
-
[Unreal] Render Through Object, 오브젝트 뒤에 있는 플레이어 보이게 하기쾌락없는 책임 (공부)/Unreal 2023. 7. 12. 10:14
개요 Apex Legend의 블러드 하운드, 오버워치의 위도우 메이커. 이 캐릭터들의 스킬에서 공통점이 있다면 오브젝트 뒤에 있는 적들의 모습을 볼 수 있다는 점입니다. 이를 통해 보이지 않는 적들을 찾아낼 수 있습니다. 이런 요소를 제작하고 있는 게임에 넣어보고자 Post Process Volume을 활용했고 이 과정을 한번 정리해 보려고 합니다. Post Process Material 제작 개요 일단 Content Browser에서 우클릭을 해서 Material을 만들어 줍니다. 저 같은 경우 PP_SearchOutEffect라는 이름을 사용했습니다. 만든 Material의 Domain을 Post Process로 설정해 줍니다. 이제 본격적인 개념을 알아봅시다. 중간에 아무 장애물이 없는 경우 Cus..
-
[Unreal] CustomDepth Stencil Value 결과가 이상한 경우쾌락없는 책임 (공부)/Unreal 2023. 7. 11. 22:29
개요 인게임에 Custom Depth를 사용하는 효과가 2개 있습니다. 하나는 인터렉팅이 가능한 오브젝트들에 보이는 아웃라인 효과, 벽 뒤 플레이어를 감지할 수 있는 투시 효과. 그런데 아웃라인 효과와 투시 효과는 각자 다른 메쉬들에게 이루어져야 했고 이들을 구분하기 위해 Stencil 값을 활용했습니다. CustomDepth Stencil Value를 활용하면 0~255까지의 수로 구분을 할 수 있어 아웃라인 효과는 50, 투영 효과는 100으로 할당해 줬습니다. 다만 이후 결과를 보게 되면 이런 이상한 모양이 나오게 됩니다. 의도하던것과 다르게 Mesh의 일부만을 이 효과를 적용시키게 되는 문제가 있었습니다. 해결 - Project Setting을 해주자 Project Setting > Engine ..