전체 글 알고리즘/백준 2022. 4. 28. <백준 10808번> 알파벳 개수 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. 예제 입력 1 baekjoon 예제 출력 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 분석 1) 특정 소문자 단어의 알파벳 개수를 저장 2) 아스키 코드 활용 3) 카운팅 배열활용(map, set도 가능) 코드 #include using namespace std; string str; int cnt[26]; int main.. 알고리즘/백준 2022. 4. 28. <백준 2309번> 일곱 난쟁이 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을.. Unreal Engine 4/C++ 2022. 4. 25. <Unreal C++> 27 - Gun Shooting Mode(Aiming), Fire & CrossHair 필요한 개념 * 액션 매핑 추가 * Aiming을 위한 SpringArm 설정 1) Target Arm Length를 줄여서 가까워지고 2) SocketOffset(앞부분)을 조정하면 틀어져서 보이게 된다. 3) camera의 FOV(Field of View, 수직 시야각) : 얘는 숫자가 작을 수록 시야각이 좁아짐(레이싱 게임할때 부스트 쓸때 시야각이 좁아짐, FPS Aiming도 시야각이 좁아짐, 줄여서 확 좁아지게) 선의 시작이 SocketOffset(앞부분) 끝 부분이 Target Offset(뒷부분) Q) 실행해보면 Aim할때 뚝뚝 끊기는 것처럼 보임? 그래서 Curve(커브)를 활용해서 부드럽게 땡기도록 함(ZoomIn, ZoomOut), Spline이랑은 다름(비슷한 수식이긴 하지만) 커브(.. Unreal Engine 4/C++ 2022. 4. 24. <Unreal C++> 24 - Gun Shooting Mode(Rifle Equip) 필요한 개념 전체적인 구조 : IRifle을 CPlayer가 상속받아 Rifle을 다룰 수 있도록 하고, 즉, IRifle을 상속받는 애들은 Rifle을 다룰 수 있게 되는 애들이다. CRifle에서는 몽타주 재생효과 및 무기탈착에 대한 전반적인 정보를 가진다. OwnerCharacter를 구해서 처리한다. CAnimInstance에서는 bool 타입으로 탈착여부를 가지고 있고, 이것으로 어떤 포즈를 가질지 결정한다. 그리고 Montage를 재생하다보면 우리가 NotifyState를 세팅한 부분이 호출될 것이다. CAnimNotifyState_Equip, CAnimNotifyState_UnEquip에서는 각각 장착, 탈착에 관한 것을 CRifle에서 호출해준다. * 액션 매핑 추가 * 소켓 추가 SK_M.. Unreal Engine 4/C++ 2022. 4. 24. <Unreal C++> 22 - SweepTrace 필요한 개념 // ECollisionChannel을 이용해 여러개의 오브젝트 채널을 등록 // ECC_EngineTraceChannel1은 우리가 쓰지 않는다. Mesh->SetCollisionObjectType(ECollisionChannel::ECC_PhysicsBody); enum ECollisionChannel { ECC_WorldStatic UMETA(DisplayName="WorldStatic"), -> 0 ECC_WorldDynamic UMETA(DisplayName="WorldDynamic"), -> 1 ECC_Pawn UMETA(DisplayName="Pawn"), ECC_Visibility UMETA(DisplayName="Visibility" , TraceQuery="1"), ECC_.. 알고리즘/기본 문법 2022. 4. 22. <알고리즘> 2차원 배열 회전 코드 #include using namespace std; void Print(vector& v) { for(vector i : v) { for(int j : i) { cout 알고리즘/기본 문법 2022. 4. 22. <알고리즘> 입출력 싱크 ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); 위 코드는 입출력싱크를 맞추는 것을 해제한다는 의미이다. c++에서 대표적인 입출력 함수로는 cin, cout, scanf, printf가 있고 이는 시스템콜관련 함수이므로 같이 쓰일 때는 입출력싱크를 맞춰주어야 한다. 속도(빠른 순) scanf, printf > cin, cout 왜냐면 cin, cout은 c라이브러리인 stdio의 버퍼와 동기화하느라 시간을 소비하기 때문이죠. 이 때 cin, cout의 시간을 빠르게 해주는 방법이 있다. 바로 위코드처럼 싱크를 해제하여 버퍼 동기화를 하지 않는 것이죠. 하지만 이렇게 했을 때 반드시!!cin, cout를 쓸 때 scanf, printf를.. 알고리즘/기본 문법 2022. 4. 22. <알고리즘> 2차원 배열 수정하는 함수 코드 #include using namespace std; void b(int a[][5]) { a[0][4] = 44; } int main() { int a[3][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, }; b(a); cout 이전 1 ··· 12 13 14 15 16 17 18 ··· 35 다음