분류 전체보기
-
JUNGOL 실력키우기 도형만들기2 - 홀수 마방진보관함 2020. 1. 24. 10:49
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 도형만들기2의 홀수 마방진을 풀어보겠습니다. 2074 : 홀수 마방진 이전의 문제를 보다 이 문제를 보니 굉장히 친절한 것 같습니다. x 혹은 y가 0보다 작아지면 n - 1로 이동하도록 하는 것만 주의하면 어려울 게 없는 문제입니다. #include using namespace std; int arr[101][101]; int main(void) { int n; cin >> n; int x{ n / 2 }, y{ 0 }; for (int i = 0, num = 1; i < n * n; ++i, ++num) { arr[y][x] = num; if (a..
-
JUNGOL 실력키우기 도형만들기2 - 대각선 지그재그 | 문자마름모보관함 2020. 1. 24. 10:48
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 도형만들기2의 대각선 시리즈를 풀어보겠습니다. 1495 : 대각선 지그재그 이 문제도 방향별로 나눠서 생각하면 된다는 점에서 달팽이 시리즈와 기본적으로는 같은 구조를 가지고 있다고 볼 수 있습니다. 다만 이 문제는 방향이 두가지인 대신 다음으로 넘어가는 부분에서 분기가 발생하는 점이 다릅니다. 방향은 좌하단, 우상단으로 두가지이고 각각 값을 바꿔줘야 하는 경우는 x가 범위를 넘어갔을 때, y가 범위를 넘어갔을 때를 각각 생각해 줘야 합니다. #include using namespace std; void MoveLeftDown(int n); void M..
-
JUNGOL 실력키우기 도형만들기2 - 달팽이삼각형 | 달팽이사각형보관함 2020. 1. 24. 10:41
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 도형만들기2의 달팽이 시리즈를 풀어보겠습니다. 1337 : 달팽이삼각형 이 문제는 기본적으로 우 하단으로 이동하는 것, 왼쪽으로 이동하는 것, 상단으로 이동하는 것을 분리하여 처리해야 합니다. 그리고 종료 조건은 이 세 이동을 모두 할 수 없는 경우가 됩니다. 저는 기본적으로 다음에 이동해야 할 위치에 값이 있거나 최대로 이동한 경우(n에 도달 또는 배열의 경계에 도달) 값을 증가시키지 않고 저장하고 반복문을 빠져나오도록 처리했습니다. #include using namespace std; int arr[101][101]; int main(void) {..
-
JUNGOL 실력키우기 도형만들기2 - 숫자삼각형 | 파스칼 삼각형보관함 2020. 1. 24. 10:39
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 도형만들기2의 숫자 삼각형과 응용판인 파스칼 삼각형을 풀어보겠습니다. 1641 : 숫자삼각형 #include using namespace std; void PrintTriangle1(int n); void PrintTriangle2(int n); void PrintTriangle3(int n); bool CheckInputRange(int n); void PrintError(); int main(void) { int n, m; cin >> n >> m; if (!CheckInputRange(n)) PrintError(); else { switch (m..
-
JUNGOL 실력키우기 도형만들기2 - 별삼각형1 | 별삼각형2 | 별삼각형3보관함 2020. 1. 22. 21:14
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 도형만들기2의 별삼각형 시리즈를 풀어보겠습니다. 1523 : 별삼각형1 이 문제도 이전에 풀었던 문제와 크게 다르지 않습니다. 케이스 1과 2는 쉽게 해결이 가능합니다. 케이스 3은 2n - 1을 따라 진행하시면 됩니다. 주의해야 할 점은 범위를 벗어나는 값에 대한 처리를 명시해 뒀기 때문에 반드시 이 부분에 대한 처리를 추가해야 합니다. #include using namespace std; bool CheckValidData(int n, int m); void PrintTriangle1(int n); void PrintTriangle2(int n);..
-
JUNGOL 실력키우기 도형만들기1 - 문자삼각형1 | 문자삼각형2보관함 2020. 1. 19. 09:42
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 도형만들기1의 문자삼각형 시리즈를 풀어보겠습니다. 1338 : 문자삼각형1 이번 문제는 우측으로 붙어있는 삼각형을 만드는 문제입니다. 그런데 이런 문제는 사실 왼쪽에 붙어있다고 가정하고 모양을 만든 뒤 우측 정렬이 되도록 공백을 맞춰주는 게 훨씬 쉬울 수 있습니다. 즉, 다음과 같은 모양을 만든 뒤 공백을 만들어주는 것이죠. #include using namespace std; int main(void) { int n; cin >> n; char arr[101][101]{}; char c = 'A'; for (int i = 0; i < n; ++i) ..
-
JUNGOL 실력키우기 도형만들기1 - 문자사각형1 | 문자사각형2보관함 2020. 1. 19. 09:38
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 도형만들기1의 문자사각형 시리즈를 풀어보겠습니다. 1307 : 문자사각형1 이번 문제의 경우 2차원 배열을 사용하여 미리 데이터를 저장한 뒤 출력하면 쉽게 해결이 가능합니다. 입력의 최대 사이즈가 정해져 있기 때문에 미리 배열을 만들어 둘 수도 있지만 저는 동적 할당을 통해 2차원 배열을 만들어 진행해 봤습니다. #include using namespace std; int main(void) { int n; cin >> n; char** arr = new char*[n]; for (int i = 0; i < n; ++i) { arr[i] = new c..
-
게임 프로그래밍 패턴 Part 2 디자인 패턴 다시 보기 - 명령보관함 2020. 1. 18. 19:43
게임 프로그래밍 패턴로버트 나이스트롬 (Robert Nystrom) 상세보기 이 시리즈는 [게임 프로그래밍 패턴]에 등장하는 팁을 정리하고 패턴을 직접 구현하거나 구현되어 있는 패턴을 확인하는 것으로 해당 패턴에 대해 이해하는 것을 목표로 한다. 이번 포스팅에서는 Part 2의 첫 번째 패턴인 명령 패턴을 살펴보고 유니티로 구현해 보는 것을 목표로 한다. 명령 패턴이란?) [GoF디자인 패턴]에서는 명령 패턴을 다음과 같이 소개했다. 요청 자체를 캡슐화하는 것입니다. 이를 통해 요청이 서로 다른 사용자(Client)를 매개변수로 만들고, 요청을 대기시키거나 로깅하며, 되돌릴 수 있는 연산을 지원합니다. 또, 명령 패턴에 대해 책의 저자는 다음과 같이 요약했다. 명령 패턴은 메서드 호출을 실체화(Reify..