목록내 개인적인 공부 (60)
그냥 게임개발자
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cUnkDv/btsGlUsCrUj/mhKAABt2qxwBDwBXgtveTk/img.png)
예를 들어 int / float를 계산하게되면 어떤 타입으로 변환이 되어 나올까? 바로 float다. 이렇게 타입이 변환이 되는 것을 암시적 형변환이라고 하는데 우선순위는 아래와 같다. 1 long double 2 double 3 float 4 unsigned long long 5 long long 6 unsinged long 7 long 8 unsigned int 9 int(lowest) 이 때문에 vector의 size()를 기반으로 음수가 나올 수 있는 연산을 할 때 주의해야 한다. vector의 size()라는 메서드는 unsgined int를 반환한다. 예를 들어 v.size()값이 8이면 v.size() - 10 이렇게 연산을 할 때 결과값은 음수가 나와야 하지만 unsigned int와 in..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/BzUbf/btsGoRgfB0d/9Nh8UscCwa7lvBqc4KtosK/img.png)
저번에는 재귀함수로 순열을 만들었다. 이번에는 반복문을 통해 순열을 만들어보자. 일단 코드를 봐보자. 사실 반복문은 쉽다. #include #include using namespace std; int main() { vector ret = {1, 2, 3}; for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) for (int k = 0; k < 3; ++k) { if (i == j || j == k || k == i) continue; cout
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjAxhb/btsGkUqyc71/OZYwhdq5ZC7Q285ruSJt31/img.png)
조합이란? 순열 글을 포스팅 할 때 순서있는 건 순열 순서 상관 없이 조합 이라고 했다. 조합에는 순서가 없다. 그저 몇명을 뽑아서 갈 것인가를 쓸 때 조합을 쓴다. 순서따윈 상관없고 오로지 몇명을 '다양하게'뽑을 때 사용하는 것 공식을 먼저 보자 예를 들어 5개 중에 3개를 순서 상관없이 뽑는다면 공식에 사용되는 건 이렇다 5C3 그럼 결국 이것을 대입해보면 5! / 3!(5-3)!이다. 그럼 결국 풀어서 설명하자면 5 * 4 * 3 * 2 * 1 --------------------- 3 * 2 * 1 * 2 * 1 이렇게 표현이 되겠다. 그렇다면 5 * 4 * 3 * 2 * 1 --------------------- 3 * 2 * 1 * 2 * 1 뺄 것들을 빼면 5 * 4 / 2가 되어 20 / ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EcILb/btsGefQnFpz/2QF28KKHelsn1UdkH6fFR0/img.png)
#include #include #include int main() { vector v; for (int i = 1; i
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/buWtPf/btsGg0jY51Q/o90xtKHyO5IQm1ACEqReSK/img.png)
순서와 상관 O 뽑는다면 >> 순열 순서와 상관 X 뽑는다면 >> 조합 순서를 재배치하여 or 한 순서의 경우 max값을 어쩌구저쩌구 >> 순열 ex1) [1, 2, 3] 3개를 뽑으라면 [1, 2, 3] => 조합(순서 상관 없음) [1, 2, 3] 1번 부터뽑고 2번부터 뽑고 3번부터 뽑는다. [1, 2, 3], [2, 1, 3], [1, 3, 2], [2, 3, 1], [3, 1, 2], [3, 2, 1] 총 6개 => 순열(순서 상관있음) ex2) [1, 2, 3] 2개를 순서 상관 없이 뽑으면 => [1, 2], [2, 3], [1, 3] 3개 [1, 2, 3] 2개를 순서 상관 있이 뽑으면 => [1, 2], [2, 1], [1, 3], [3, 1], [2, 3], [3, 2] 6개 그럼 이것..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Frtf4/btsGeeDYfqx/PHLrTbJedYkC1Jtwx5njEK/img.png)
재귀함수 재귀함수(Recursion)는 정의 단계에서 자신을 재참조하는 함수 전달되는 상태인 매개변수가 달라질 뿐 똑같은 일을 하는 함수 큰 문제를 작은 부분문제로 나누어서 풀 때 사용한다. 주의사항 반드시 기저사례를 써야 한다. 기저사례라는 것은 종료 조건을 말한다. 사이클이 있다면 쓰면 안된다. ex) func(a) 가 func(b)를 호출한 뒤 func(b)가 다시 func(a)를 호출하는 것 반복문으로 풀 수 있다면 반복문으로 푸는 것이 맞다. 예시 코드들 #include using namespace std; int fact(int n) { // 기저사례 if (n == 1 || n == 0) return 1; return n * fact(n - 1); } int fibo(int n) { // 기..
어떤 알고리즘을 사용한다라는 그런 분류들을 보지말자. 이것을 파악하는 것이 핵심이다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ljiyW/btsF94IjOP6/0vMyvF4kAN5kGBP1KBe2cK/img.png)
오늘도 역시 프로그래머스 코딩을해보았다. 요새 블로그 예쁘게 쓰려고 노력 많이하는데 퇴근하고 막상 쓰려니 이쁘게 못쓰겠다. 그리고 문제를 푸는데 Lv3짜리인데 뇌를 안쓰니 역시 뇌가 굳는 것 같다. 이제 몸과 뇌가 서로 같이 굳는 것 같다. 홍홍홍 아무튼 오늘도 역시 혼자서 풀지 못했다. 시간도 그리 많지 않고 빨리 이해하고 호그와트 레거시를 하고 싶을 뿐 아무튼 여차저차 내가 이해한대로 주석을 다 넣어 놨으니 이제야 이해가 갈 것 같다. 사실 문제라는 것은 답이나 해석을 모르면 어렵지 답이나 해석을 알면 이제 알기 쉬워진다. 모르는 책이다 그냥 맘에 들어서 넣어봤다. https://school.programmers.co.kr/learn/courses/30/lessons/49189?language=csh..