프로그래머스(C++) - 완주하지 못한 선수
·
C++ 프로그래머스/Hash
●문제 ●입출력 사용 알고리즘 : Hash / unordered_map 문제해독 : 참여자가 완주자보다 항상 +1 완주자 는 참여자 -1 임참여자를 map의 ++완주자를 map의 --를 해줬을때완주자가 0보다 클때 즉 남은사람을 구하는 문제#include #include #include using namespace std;string solution(vector participant, vector completion){ //참여자선수이름, 해당 이름의 갯수 unordered_mapplayerMap; for (int i = 0; i 0) { return it.first; } } return "";} Lv: 1점수 : 1
Algorithm - Hash
·
C++ 프로그래머스/Hash
해시(Hash)란?데이터를 효율적으로 관리하기 위해 임의의 길이를 데이터를 고정된(size_t)길이의데이터로 매핑하는 함수이다 즉 전화번호부 를 생각하면 쉽다이름을 입력했을때 전화번호가 나온다 Key : 이름 , Value : 전화번호 사용해야할때 : String을 기반으로 정보를 기록하고 관리해야 할때 ●Key, value로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를검색할수 있다는 장점을 가진 자료구조이다 ● 시간 복잡도는 O(1)이며 충돌이 일어나 최악의 경우O(N)이 소모됨-> 해쉬 충돌 (버킷 개수 보다 저장할려는 데이터 종류가 훨씬 많으면 서로 다른 데이터가 같은 해시값을 같게될떄 일어나는 현상)해결법 : Seperate Chaining(분리 연결법) 이나 Open Address..
Unreal - 캐릭터 기본 인풋 설정하기
·
Unreal 프로젝트 다이어리/두번째 프로젝트
3인칭 백뷰 시점의 캐릭터를 만들어주었습니다필요한 헤더 선언 UPROPERTY(EditAnywhere, Category="Camera")class USpringArmComponent* cameraBoom;UPROPERTY(EditAnywhere, Category = "Camera")class UCameraComponent* mainCamera; AMainCharacter::AMainCharacter(){ PrimaryActorTick.bCanEverTick = true; SetRootComponent(GetCapsuleComponent()); GetMesh()->SetRelativeLocation(FVector(0.f, 0.f, -90.f)); GetMesh()->SetRelativeRotation(FR..
프로그래머스(C++) - 기능개발
·
C++ 프로그래머스/Stack,Queue
●문제 ●입출력 사용 알고리즘 : Stack#include #include #include #include using namespace std;vector solution(vector progresses, vector speeds) { vector answer; vector stkDay; for (int i = 0; i 레벨 : 2점수 : 1
Algorithm - Stack, Queue
·
C++ 프로그래머스/Stack,Queue
스택(Stack) 이란?마지막에 넣은 데이터가 가장 먼저 선출되는걸 볼수있는 LIFO(Last In Fist Out) 구조입니다 사용 해더파일#include 선언방식stack 변수이름stack stk;stack stk; 스택기본함수스택에 데이터 추가시키기stk.push(data) 스택의 가장 윗 데이터 반환하기stk.pop() 스택의 top 데이터 삭제하기stk.pop() 스택이 비어있는가 를 확인하기stk.empty() 스택의 사이즈 반환하기stk.size() 스택 스왑(내용 변경하기)swap(data1, data2) 사용방식 예제char 타입으로 '1' '2' '3'을 순서대로 stack에 저장하고가장 위에있는것부터 나오게 한다#include #include using namespace std;i..
프로그래머스(C++) - 짝지어 제거하기
·
C++ 프로그래머스/Stack,Queue
●문제●입출력 문제해독 : 문자열 s에서 앞에서 같은 알파벳 문자가 있을때마다 각 알파벳 짝을 제거전부다 제거가 가능하면 1 아닐시 0 return 사용알고리즘 : Stack 내가 푼방법 : stack을 사용하여 같은문자일때 pop으로 제거같은문자가 아닐시 push배열이 남아있으면 1return 아니면 0 #include#include #include using namespace std;bool solution(string s){ bool answer = true; stack stk; for (int i = 0; i 레벨 : 2점수 : 1
프로그래머스(C++) - 다음 큰 숫자
·
C++ 프로그래머스/기타 문제
●문제●입출력 문제해독 : 숫자 n 이 주어졌을때 result값은 항상 n보다 크며10진수값인 n을 2진수값으로 변환했을때 1의 갯수가 같은 값중에 가장 작은값 도출 내가 푼 방법 : bitset을 사용하여 1의갯수를 구하고 while문으로 result값을 도출#include #include #include #include using namespace std;int solution(int n) { //n이 주어질때 다음 temp값은 n보다 크다 temp > n //temp값과 n값은 2진수 변환했을때 1의 갯수가 같다 //temp값 조건만족하는 가장 작은 수 //1의 갯수 카운트 int oneCount = bitset(n).count(); int temp = n +..
(개인복습) - 진법변환 (2, 10)진수
·
C++ 프로그래머스
본격적으로 LV2 에 들어가기전 2진수, 10진수 변환하는 함수를 연습했습니다 10진수값을 2진수로 변환하거나 2진수값을 10진수값으로 변환하는 코드를 짜보자 10진수 -> 2진수 변형#include #include #include #include using namespace std;int solution(int n) { //10진수값 n이 주어졌을때 2진수값으로 변환시키는 함수 bitset num(n); string binary = num.to_string(); //앞의 0 제거 size_t temp = binary.find('1'); if (temp != string::npos) { binary = binary.substr(temp); } ..
프로그래머스(C++) - 숫자의 표현
·
C++ 프로그래머스/기타 문제
●문제●입출력 문제해독 : 연속되는 자연수들의 합이 n이 될때 그 경우의 수 값을 return 내가 푼 방법 : 2중for문을 사용해서 1부터 계산하여 연속되는 자연수들의 값의 합이 n일때 answer ++;#include #include using namespace std;int solution(int n) { int answer = 1; for (int i = 1; i n) { break; } } } return answer;} 레벨 : 2점수 : 1
프로그래머스(C++) - JadenCase 문자열 만들기
·
C++ 프로그래머스/기타 문제
●문제●입출력 문제해독 : 대문자 소문자 변환, 공백확인 푼방법 : CCType 라이브러리의 islower, isupper, tolower, toupper 함수 사용#include #include #include using namespace std;string solution(string s) { //만약에 첫글자가 소문자면 if (islower(s[0])) { //대문자로 바꿔라 s[0] = toupper(s[0]); } for (int i = 0; i 레벨 : 2점수 : 3