문제 설명상근이는 생일 선물로 장난감 탱크 N개를 받았다. 탱크를 가지고 놀기 전장을 만들었다. 전장은 나무판 위에 N행 N열 크기로 만들었다.각 탱크가 한 번에 움직일 수 칸은 인접한 네 칸이다. 탱크는 같은 행과 열에 있는 모든 칸을 공격할 수 있다. 따라서, 탱크는 자신이 있는 칸에 해당하는 행과 열을 보호하고 있다고 말할 수 있다.두 탱크가 동시에 같은 정사각형 안에 있을 수는 없다.이렇게 탱크를 가지고 두~세시간 동안 열심히 놀고 있었다. 상근이의 어머니는 점심까지 거르면서 놀고있는 상근이를 못마땅하게 생각했고, 당장 점심을 먹으러 오라고 소리쳤다. 상근이는 탱크가 모든 행과 열을 보호하게 배치를 바꾼 다음에 점심을 먹으러 가려고 한다. (즉, 각각의 행과 열에 하나의 탱크만 있어야 한다)이렇게..
전체 글
8일차 요약(캐릭터 애니메이션, Light, UI)캐릭터 애니메이션캐릭터 애니메이션을 직접 만든다면 pivot위치에 주의해야 한다.pivot을 설정할 때는 자식으로 pivot을 추가한 뒤, 위치를 조정하고 부모-자식 관계를 뒤집는 게 편리하다.Loop Animation이라면 시작과 끝에서 걸리는 보간을 유의하여 제작해야 한다. LightRealTime: Directional Light, Point Light, Spot LightBaked: Area LightSkybox는 환경광(주변광)의 역할을 한다. UIUnity에 UI를 출력하기 위해서는 Canvas라는 것이 꼭 필요하다.Canvas는 UI를 붙이는 Panel역할을 한다고 생각하면 된다.RectTransform을 이용할 때, Alt를 누른 채로 클..
7일차 요약(Layer, Physic Material, Animtion, Tag)Layer상호작용을 나타내는 preset이다.Layer 간 상호작용에 대한 설정도 할 수 있다. Physic Material물리적인 재질을 나타내는 Asset이다.마찰력, 탄성 등 다양한 값을 가진다.이는 게임상에서 물리적인 계산에 영향을 미친다. AnimationgameObject의 모든 속성을 시간에 맞게 움직이게 하는 Animation을 생성할 수 있다.예를 들어, 이동, 회전, 스케일 등 기본적인 동작도 가능하며 소리의 크기나 pitch 등 역시 조절할 수 있다.Animation을 만들 때, 녹화를 켜두고 원하는 값들을 조정해도 되지만, Key를 수동으로 생성하는 게 좋다고 생각한다.(실수 방지)Animation을 만..
문제 설명선주는 자신이 운영하는 N개의 논에 물을 대려고 한다. 물을 대는 방법은 두 가지가 있는데 하나는 직접 논에 우물을 파는 것이고 다른 하나는 이미 물을 대고 있는 다른 논으로부터 물을 끌어오는 법이다.각각의 논에 대해 우물을 파는 비용과 논들 사이에 물을 끌어오는 비용들이 주어졌을 때 최소의 비용으로 모든 논에 물을 대는 것이 문제이다.https://www.acmicpc.net/problem/1368 제한 사항 풀이문제를 요약하면, N개의 논에 물을 모두 채우기 위한 최소 비용을 구해야 한다.논에 물을 채우는 방법은 두 가지이다.직접 물을 채우기다른 논에서 끌어오기두 방법은 비용이 다르다. 해당 문제는 문제의 표현을 살짝 바꿔보면 쉽게 풀 수 있다.물을 직접 채우는 방식이 없다..
6일차 요약(회전, Collider, RigidBody)회전회전은 크게 오일러, 쿼터니언으로 구분된다. (오일러: (x, y, z), 쿼터니언: (x, y, z, w))오일러 방식으로 회전을 적용하면 짐벌락이라는 문제가 생긴다.짐벌락: 하나의 축이 다른 축과 겹쳐져 구분이 되지 않는 상태오일러 → 쿼터니언: Quaternion.Euler(Vector3)쿼터니언 → 오일러: Quaternion(변수).eulerAngles;회전시키는 함수Rotate(Axis * Degree) : Axis(축)을 기준으로 Dgree만큼 회전RotateAround(TargetPos, Axis, Degree): TargetPos의 Axis를 기준으로 Speed만큼 회전LookAt(Transform, Axis): Transform..
문제 설명19학번 이준석은 학생이 N명인 학교에 입학을 했다. 준석이는 입학을 맞아 모든 학생과 친구가 되고 싶어한다. 하지만 준석이는 평생 컴퓨터랑만 대화를 하며 살아왔기 때문에 사람과 말을 하는 법을 모른다. 그런 준석이에게도 희망이 있다. 바로 친구비다!학생 i에게 Ai만큼의 돈을 주면 그 학생은 1달간 친구가 되어준다! 준석이에게는 총 k원의 돈이 있고 그 돈을 이용해서 친구를 사귀기로 했다. 막상 친구를 사귀다 보면 돈이 부족해질 것 같다는 생각을 하게 되었다. 그래서 준석이는 “친구의 친구는 친구다”를 이용하기로 했다.준석이는 이제 모든 친구에게 돈을 주지 않아도 된다!위와 같은 논리를 사용했을 때, 가장 적은 비용으로 모든 사람과 친구가 되는 방법을 구하라.https://www.acmicpc..
문제 설명n개의 점으로 이루어진 트리가 있습니다. 이때, 트리 상에서 다음과 같은 것들을 정의합니다. 어떤 두 점 사이의 거리는, 두 점을 잇는 경로 상 간선의 개수로 정의합니다. 임의의 3개의 점 a, b, c에 대한 함수 f(a, b, c)의 값을 a와 b 사이의 거리, b와 c 사이의 거리, c와 a 사이의 거리, 3개 값의 중간값으로 정의합니다. 트리의 정점의 개수 n과 트리의 간선을 나타내는 2차원 정수 배열 edges가 매개변수로 주어집니다. 주어진 트리에서 임의의 3개의 점을 뽑아 만들 수 있는 모든 f값 중에서, 제일 큰 값을 구해 return 하도록 solution 함수를 완성해주세요.https://school.programmers.co.kr/learn/courses/30/lessons/..