문제 설명 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 달라 어떤 순서로 설지 정하는데 시간이 오래 걸렸다. 네오는 프로도와 나란히 서기를 원했고, 튜브가 뿜은 불을 맞은 적이 있던 라이언은 튜브에게서 적어도 세 칸 이상 떨어져서 서기를 원했다. 사진을 찍고 나서 돌아오는 길에, 무지는 모두가 원하는 조건을 만족하면서도 다르게 서는 방법이 있지 않았을까 생각해보게 되었다. 각 프렌즈가 원하는 조건을 입력으로 받았을 때 모든 조건을 만족할 수 있도록 서는 경우의 수를 계산하는 프로그램을 작성해보자. 입력 형식 입력은 조건의 개수를 나타내는 정수 n과 n개의 원소로 구성된 문자열 배열..
Token 만들기 개발 중인 게임에 필요한 Token을 제작하는 과정 원하는 3D 에셋은 다음과 같은 모양이다. 모델링 모델링은 크게 2가지만 하면 된다. token의 밑부분인 동전과 같은 부분 token의 위에 올라가는 광석 부분 동전 부분 cylinder를 이용하여 만드는 방법과 원으로부터 만들 수 있다. 이번에는 원에서 시작하겠다. 원을 생성한다. Tab을 눌러 edit mode로 변경한다. F를 눌러 표면을 생성한다. 그다음은 만들어진 원을 이용하여 입체적인 물체를 만들면 된다. E를 눌러 높이를 만들어 준다. I를 눌러 안쪽으로 추가적인 점을 생성한다. 다시 E를 눌러 안쪽의 높이를 낮춘다. 광석 부분 IcoSphere를 이용하면 광석과 같은 모양을 쉽게 만들 수 있다. IcoSphere의 Su..
문제 설명 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진합니다. 빛이 "L"이 써진 칸에 도달한 경우, 좌회전을 합니다. 빛이 "R"이 써진 칸에 도달한 경우, 우회전을 합니다. 빛이 격자의 끝을 넘어갈 경우, 반대쪽 끝으로 다시 돌아옵니다. 예를 들어, 빛이 1행에서 행이 줄어드는 방향으로 이동할 경우, 같은 열의 반대쪽 끝 행으로 다시 돌아옵니다. 당신은 이 격자 내에서 빛이 이동할 수 있는 경로 사이클이 몇 개 있고, 각 사이클의 길이가 얼마인지 알고 싶습니다. 경로 사이클이란, 빛이 이동하는 순환 경로를 의미합니다. 예를 들어, 다음 그림은..
기본 제어 및 단축키 Edit > Preferences > KeyMap Middle Mouse Action을 변경하면 휠 클릭의 액션을 변경할 수 있다. 각자 취향에 맞게 변경하면 될 듯하다. (Orbit: 회전, Pan: 이동) 아래 설명은 이 설정을 기반으로 한 것이다. 기본 제어 화면 이동 마우스 가운데 클릭 화면 회전 shift + 마우스 가운데 클릭 화면 확대/축소 휠 회전(↑: 확대, ↓: 축소) 물체 이동, 회전, 크기 조절 물체 이동 물체를 클릭한 상태에서 G키를 누르면 물체를 이동할 수 있다. 이동이 가능한 상태에서 X, Y, Z키를 누르면 해당 방향으로만 이동이 가능하게 할 수 있다. 화면 회전 물체를 클릭한 상태에서 R키를 누르면 물체를 이동할 수 있다. 이동이 가능한 상태에서 X, ..
문제 설명 n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다. 송전탑의 개수 n, 그리고 전선 정보 wires가 매개변수로 주어집니다. 전선들 중 하나를 끊어서 송전탑 개수가 가능한 비슷하도록 두 전력망으로 나누었을 때, 두 전력망이 가지고 있는 송전탑 개수의 차이(절대값)를 return 하도록 solution 함수를 완성해주세요. https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의..
문제 설명 Ax + By + C = 0으로 표현할 수 있는 n개의 직선이 주어질 때, 이 직선의 교점 중 정수 좌표에 별을 그리려 합니다. 예를 들어, 다음과 같은 직선 5개를 2x - y + 4 = 0 -2x - y + 4 = 0 -y + 1 = 0 5x - 8y - 12 = 0 5x + 8y + 12 = 0 좌표 평면 위에 그리면 아래 그림과 같습니다. 이때, 모든 교점의 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4), (1.5, 1.0), (2.1, -0.19), (0, -1.5), (-2.1, -0.19), (-1.5, 1.0)입니다. 이 중 정수로만 표현되는 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4)입니다. 만약 정수..
Replication Replication이란 Server와 Client사이의 명령과 데이터를 주고받는 것이다. 즉, Server와 Client의 동기화라고 생각하면 된다. Replication의 방식은 두 가지이다. 프로퍼티 업데이트 RPC (Remote Procedure Call). 프로퍼티 리플리케이션과 RPC 사이의 큰 차이점은, 프로퍼티는 변경될 때마다 자동으로 리플리케이트되는 반면, RPC는 실행될 때만 리플리케이트된다는 점이다. 쉽게 말하면 프로퍼티 업데이트는 자동, RPC는 수동이다. 프로퍼티 업데이트 예를 들어, 한 캐릭터의 체력을 나타내는 변수는 프로퍼티 업데이트 방식을 이용하여 데미지를 입었을 때 자동으로 Replication이 되게 할 수 있다. 하지만, 프로퍼티의 변화를 감지하는 ..
Travel Map을 이동하기 위해서는 Travel을 이용해야 한다. Travel은 크게 Seamless 방식과 non-seamless방식으로 나뉜다. Seamless 방식은 Player들의 연결 해제 없이 매끄럽게 Map을 이동한다. 매끄러운 이동을 위해 TransitionMap을 이용하는데, TransitionMap이란 목적이 되는 Map으로 이동하기 전에 거쳐가는 Map이다. 쉽게 생각하면 맵을 이동 하면서 로딩화면을 띄운다고 생각하면 된다. 또한, Seamless 방식으로 Map을 이동하면 몇 개의 액터를 지속시킬 수 있다. 다음은 지속시킬 수 있는 액터들이다. GameMode 액터 (서버만) AGameModeBase::GetSeamlessTravelActorList 를 통해 추가된 액터 유효한 ..
문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이어붙인 새로운 1차원 배열을 만듭니다. 새로운 1차원 배열을 arr이라 할 때, arr[left], arr[left+1], ..., arr[right]만 남기고 나머지는 지웁니다. 정수 n, left, right가 매개변수로 주어집니다. 주어진 과정대로 만들어진 1차원 배열을 return 하도록 solution 함수를 완성해주세요. https://scho..
문제 설명 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다. 이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘 이 던전들..