안녕하세요. chogahui05입니다. 인성에서 100%의 확률로 떨어지다 보니 제 인성에 문제가 있는 듯 싶어요. 셀프 깍기는 밴이고요. 오늘은 좀 유명한 게임을 다뤄볼 것인데요. quento라고, n개의 숫자와 n-1개의 연산자를 조합해서 특정한 수 m을 만들어야 합니다. 이 때, 한 번 방문한 칸은 다시 방문할 수 없고, 인접한 칸으로만 이동이 가능합니다. 예를 들어 봅시다. 7 밑에 네모가 2개 있어요. 이는 수는 2개, 연산자는 하나를 사용 해야 한다는 이야기입니다. 그러면 (0,0)에서 출발해서 오른쪽으로 가면 될 거에요. 5 + 2 = 7이기 때문입니다. 이번에는 11을 만들어야 하는데요. 사용해야 하는 숫자의 갯수는 3개, 연산자는 2개입니다. 7+4도 답은 됩니다. 하지만, 사용한 숫자의..
구현 검색 결과
안녕하세요. chogahui05입니다. 함수 잘 만드는 거. 상당히 중요합니다. 구현을 잘 하기 위해서는 모듈화가 중요합니다. 기능을 어떻게 잘 함수로 뺄 지가 중요합니다. 우리가 쉽게 생각할 수 있는 strlen이나, strcat을 생각해 봅시다. 만약에 그 기능들이 모두 main 함수 안에 구현이 되어 있다면 어떨까요? 생각만 해도 끔찍할 겁니다. 물론 1~2줄밖에 되지 않겠지만요. 그러면 문제를 보고 기능을 어떻게 잘게 나누느냐가 중요하다는 것인데요. 오늘은, 백준 문제들 중에서, 어떻게 기능을 나눌 수 있는지만 간단하게 연습해 보도록 하겠습니다. 강의용 예제 코드는 제 github의 BOJ 폴더의 17495_example.cpp입니다. 당연하게도 4444 문제를 찍기 위해서 급하게 작성된 코드이기..
a>b라면, -ab이면 -ab(2)>...>b(n)을 만족합니다. 그러면 -b(1)
구현 3번째 시간입니다. 많이 들어보셨을 달팽이 배열 알고리즘을 작성해 보도록 하겠습니다. 나름 많이 알려진 것이지만, 구현을 할 때, 조금이나마 더 쉽게 할 수 있는 팁들이 많으니, 잘 보시고 얻어가실 거 있으면 얻어가셨으면 좋겠습니다. 먼저 달팽이 배열은, 어떠한 특정 지점에서 시작하여, 시계 방향으로 쭉 돌면서 중앙까지 가는 것을 말해요. 이것을 보통 어떻게 구현을 하느냐. 4방향으로 나누어서 들어갑니다. 오른쪽으로 가고, 아랫쪽으로 가고, 왼쪽으로 가고, 위로 갑니다. 그렇게 1사이클을 돌립니다. 그리고 안쪽 ㅁ에서 또 돌리고요. 이런 식으로 해서 ㅁ의 크기가 0보다 작거나 같아질 때 까지 돌리면 됩니다. 그런데 더 쉬운 방법이 없을까요? 우리는 우측, 아래, 왼쪽, 윗쪽 방향 순서대로 돌아가는 ..
배열 회전 알고리즘은, 구현 문제에서 심심찮게 보이는 문제 중에 하나입니다. 우리는 n by n 배열을 시계, 그리고 반시계 방향으로 temp array를 쓰고 회전하는 방법을 배워보도록 하겠습니다. 물론, 면접에서는 n by n짜리를 안 쓰고 돌리는 방법을 물어볼 수도 있습니다. 이에 대한 방법은, 과제로 드리겠습니다. 배열이 있습니다. 이것을 시계 방향으로 90도 회전시키면 어떻게 그려질까요? 요렇게 그려집니다. 그런가요? 그러면 우리는 첫 번째 줄부터 특징을 잡아야 하는데요. 1번째 줄에는, [..][0]이 들어갔다는 것을 알 수 있습니다. 2번째 줄에는 [..][1]이, 3번째 줄에는 [..][2]가 들어갔다는 것을 알 수 있어요. 이제 0열부터 2열까지 열별로 볼까요? 그러면, 0열은 [2][...
최근댓글