- 콜라문제
using System;
public class Solution {
public int solution(int a, int b, int n) {
int answer = 0;
while(n >= a)
{
answer += (n / a) * b;
n = (n / a) * b + n % a;
}
return answer;
}
}
변수 a,b,c는 a : 내가 줘야하는 양, b : 내가 받는 양, n : 가지고 있는 빈병 개수 를 의미합니다. 반복문으로 n이 a보다 크거나 같으면 코드를 계속진행하고 answer에 n을 a로 나눈값에 b를 곱한것을 더해주고 n에다(n / a) * b + n % a; 를 넣어주고 리턴합니다.
이문제는 너무어려워서 찾아보고 공부한다음 작성했다. 조금있으면 레벨3인데 걱정이된다..
16.선택 정렬과 버블 정렬에 대해 설명해주시고, 코드를 작성해보세요.
선택정렬은 숫자를 넣을 자리를 선택하고 그 자리에 가장작은 숫자를 찾아 넣어주는 알고리즘입니다. 코드는
static void Main(string[] args)
{
int[] array = { 10, 5, 6, 8, 9, 2, 3, 1, 7, 4 };
int target, temp;
for(int i = 0; i < array.Length - 1; i++)
{
target = i;
for(int j = i + 1; j < array.Length; j++)
{
if (array[j] < array[target])
target = j;
}
if( i != target )
{
temp = array[i];
array[i] = array[target];
array[target] = temp;
}
}
for(int i = 0;i < array.Length; i++)
{
Console.WriteLine(array[i]);
}
}
배열중 제일앞에있는 숫자를 target으로 지정한다음 i뒤의 숫자와 일일히 비교하고 target숫자보다 j숫자가 작으면 교환을 해줍니다. 마지막으로 i와 target이 일치하지않는다면 두 숫자를 교환해줍니다. 이과정을 끝까지 반복하는것이 선택정렬입니다.
버블정렬은 두 개의 인접한 원소를 비교하여 작은값을 앞쪽으로 큰값을 뒤쪽으로 교환하는 정렬 알고리즘입니다. 코드는
internal class Program
{
static void Main(string[] args)
{
int[] array = { 10, 5, 6, 8, 9, 2, 3, 1, 7, 4 };
int n = array.Length;
for(int i = 0; i < n - 1; i++)
{
for(int j = 0; j < n - i - 1; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
for(int i = 0; i < array.Length; i++)
{
Console.WriteLine(array[i] + " ");
}
}
}
이중반복문을 설정합니다. 앞의 숫자와 뒤의숫자를 비교해 뒤숫자가 작다면 두숫자를 교환해줍니다.
어제 오늘 2일간
흡입 발사액션 유도선제작을 오브젝트로 보여주도록 제작하였고 발사액션 코드를 일부수정하였다.
또 끌고와야하는 오브젝트가 벽뒤에 존재할경우 끌고오지못하도록 처리했으며 총구앞 일정거리 이내에 오브젝트 및 플레이어 이외에 다른것들이 존재하면 총구위치에서 발사하는것이아닌 플레이어 몸체위치에서 발사가 되도록 코드를 제작하였다. 내일부턴후크가 벽에 고정되어있을 경우 후크를 끌고오는것이아니라 에어가 끌려가도록
_latestTarget.transform.position = Vector3.Slerp(target, _weaponPoint.position, 0.05f);
이것을 AddForce로 변환(약간 곡선느낌나게 베지어곡선으로 곡선모양을 구한다음 해당방향으로 AddForce하도록)
나중에 총구위치에서 바닥으로 레이를쏴서 바닥이체크되면 돌리기제한
체크되지않으면 좀더 돌릴수있도록제작
라인렌더러로 유도선 변경
등등을 구현할예정이다.