분류 전체보기
-
JUNGOL 실력키우기 수학2 - 이진수 | 10진수를 2, 8, 16진수로 | 진법 변환보관함 2020. 2. 5. 23:35
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 수학2의 진법 변환 시리즈를 풀어보겠습니다. 2814 : 이진수 기본적으로 입력은 최대 30자리가 넘기 때문에 문자열로 받아야 합니다. 이후에는 가장 마지막 자리에서부터 처음 까지(end -> 0)를 순회하며 1부터 2씩 곱해가며 해당 값과 곱해 값을 누적하면 됩니다. 저는 reverse_iterator를 사용했는데 단순히 bStr.Size() - 1에서 1씩 감소시켜 0 이상까지 반복하는 방법도 있습니다. #include #include using namespace std; int main(void) { string bStr; cin >> bStr;..
-
JUNGOL 실력키우기 수학2 - 소수와 합성수 | 소수 | 소수 구하기 | 소수의 개수보관함 2020. 2. 5. 23:33
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 수학2의 소수 시리즈를 풀어보겠습니다. 2811 : 소수와 합성수 이 문제는 단순하게 2부터 입력된 숫자까지를 돌면서 나눠지는 값이 있는지를 확인하여 나눠지는 경우 소수로 판단할 수도 있으나 조금 더 생각하면 범위를 줄일 수 있다는 것을 알 수 있습니다. 숫자를 나눌 수 있는 가장 큰 값은 해당 숫자의 루트 값 까지라는 것입니다. 즉, 2부터 해당 숫자까지를 나누는 게 아니라 해당 숫자의 루트까지만 나눠서 확인하면 되는 것입니다. 그렇게 하면 최대로 나누는 횟수는 10억 회가 아니라 10억의 루트 값인 31,622 회가 됩니다. #include #in..
-
게임 프로그래밍 패턴 Part 2 디자인 패턴 다시 보기 - 관찰자보관함 2020. 2. 1. 15:37
게임 프로그래밍 패턴로버트 나이스트롬 (Robert Nystrom) 상세보기 이 시리즈는 [게임 프로그래밍 패턴]에 등장하는 팁을 정리하고 패턴을 직접 구현하거나 구현되어 있는 패턴을 확인하는 것으로 해당 패턴에 대해 이해하는 것을 목표로 한다. 이번 포스팅에서는 Part 2의 세 번째 패턴인 관찰자 패턴을 살펴보고 유니티로 관찰자 패턴을 이용한 업적 시스템을 만드는 것을 목표로 한다. 관찰자 패턴이란?) [GoF디자인 패턴]에서는 관찰자 패턴을 다음과 같이 소개했다. 객체 사이에 일 대 다의 의존 관계를 정의해두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지받고 자동으로 업데이트될 수 있게 만듭니다. 이것을 다시 말하면 어떤 기능을 담당하는 시스템을 객체가 구독..
-
JUNGOL 실력키우기 수학1 - 최대공약수와최소공배수 | 최대공약수, 최소공배수보관함 2020. 1. 31. 19:52
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 수학1의 최대공약수, 최소공배수 시리즈를 풀어보겠습니다. 1658 : 최대공약수와최소공배수 최소 공배수는 간단하게 구할 수 있는데 두 수중 한 수의 배수를 구하면서 다른 수로 나누어 떨어지는 가장 작은 수를 찾으면 됩니다. 이 문제에서 시간이 오래 걸리는 부분은 최대 공약수를 구하는 것인데 먼저 이전에 사용했던 방식으로 두 수의 약수를 모두 구하고 공통되는 가장 큰 약수를 찾는 방법이 있습니다. #include #include #include using namespace std; int main(void) { int a, b; cin >> a >> b..
-
JUNGOL 실력키우기 수학1 - 약수와 배수 | 약수 구하기 | 약수보관함 2020. 1. 31. 19:47
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 수학1의 약수 시리즈를 풀어보겠습니다. 1071 : 약수와 배수 문제의 설명에 많은 부분이 생략되었는데 다시 문제를 쓰자면 n 개의 정수가 주어지고 미지수 m이 주어질 때 해당 정수 리스트에서 m의 약수의 합과 m의 배수의 합을 출력하는 문제입니다. #include using namespace std; int main(void) { int n; cin >> n; int* arr = new int[n]; for (int i = 0; i > arr[i]; } int m; cin >> m; int sumFactor{ 0 }; ..
-
JUNGOL 실력키우기 수학1 - 숫자의 개수보관함 2020. 1. 31. 19:43
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 수학1의 숫자의 개수를 풀어보겠습니다. 1430 : 숫자의 개수 굉장히 쉬운 문제네요. 곱한 결과를 10으로 나눈 나머지를 배열 개수에 추가하고 곱한 결과를 10으로 나누는 것을 반복하면 해결이 가능합니다. #include using namespace std; int main(void) { int numCount[10]{}; int a, b, c; cin >> a >> b >> c; int mul = a * b * c; while (mul > 0) { numCount[mul % 10]++; mul /= 10; } for (int i = 0; i < 1..
-
JUNGOL 실력키우기 수학1 - 곱셈보관함 2020. 1. 31. 19:07
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 수학1의 곱셈을 풀어보겠습니다. 1692 : 곱셈 이 문제는 결과 값만 처음에 저장하고 있다면 중간 과정은 저장할 필요가 없이 바로바로 출력하면 됩니다. #include using namespace std; int main(void) { int a, b; cin >> a >> b; int result = a * b; while (b > 0) { int temp = b % 10; cout
-
게임 프로그래밍 패턴 Part 2 디자인 패턴 다시 보기 - 경량보관함 2020. 1. 27. 12:39
게임 프로그래밍 패턴로버트 나이스트롬 (Robert Nystrom) 상세보기 이 시리즈는 [게임 프로그래밍 패턴]에 등장하는 팁을 정리하고 패턴을 직접 구현하거나 구현되어 있는 패턴을 확인하는 것으로 해당 패턴에 대해 이해하는 것을 목표로 한다. 이번 포스팅에서는 Part 2의 두 번째 패턴인 경량 패턴을 살펴보고 유니티에서 어떻게 사용되었는지 파악하는 것을 목표로 한다. 경량 패턴이란?) [GoF디자인 패턴]에서는 경량 패턴을 다음과 같이 소개했다. 공유(shring)를 통해 많은 수의 소립(fine_grained) 객체들을 효과적으로 지원합니다. 저자는 경량 패턴을 게임에서 숲을 그리는(렌더링하는) 것으로 설명했다. 가령 숲에 많은 수의 나무가 존재하는데 멀리에서 볼 때는 나무가 비슷해 보이므로 객체..