목록전체 글 (216)
피너클의 it공부방
https://www.acmicpc.net/problem/2720 단순 수학 문제다.#include #include using namespace std;int test, c;int Quarter = 25;int Dime = 10;int Nickel = 5;int Penny = 1;int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> test; while (test-- > 0) { cin >> c; cout 전체코드다.

먼저 스프라이트를 하나 준비했다.지금 위에 스프라이트가 하나 있다. 하얀색이어서 보이지가 않는다.이걸로 메테리얼을 하나 만들거다.위에 스프라이트를 유니티에 가져와주고 메테리얼을 하나 만들어준다.스프라이트 세팅은 위에처럼 했다.그후 만든 메테리얼의 Albedo에 스프라이트를 넣어준다.그후 메테리얼의 Shader를 Sprites/Default로 바꿔준다.linerenderer로 라인 하나 만들어 줬다. 포지션만 5, 5 로 바꿔줬다.이제 라인 렌더러 Materials를 방금 만든 DottedLine으로 바꿔준다.그 다음 TextureMode를 Tile로 바꿔준다 그러면 옆에처럼 라인이 바뀐걸 볼수있다.왜냐하면 내가 한가지를 까먹었기 때문이다.스프라이트 설정으로 돌아가서 WrapMode를 Repeat로 바꿔준..
https://www.acmicpc.net/problem/15661 그냥 전부 만들어 보면 되는 문제였다. for (int i = 1; i > s[i][j];전부 입력받아준다. 이때 0부터가 아닌 1부터 입력을 받아줬다.vector start, link;start팀과 link팀을 벡터로 만들고 번호를 넣었다 뺐다 반복할 것이다.int cal(int b) { int sum = 0; if (b == 0) { if (start.size() == 0) return 987654321; for (int i = 0; i 각 팀의 총 능력치를 구하는 함수다.if (start.size() == 0) return 987654321;for (int i = 0; i 중요한건 어떻게 계산하냐는 건데 일단 만약 팀의 크기가..
https://www.acmicpc.net/problem/1094 수학문제다.우리가 만들수 있는 막대기의 길이는 64 32 16 8 4 2 1 즉 2의 제곱숫자들이다.이 숫자들로 x길이의 막대기를 만들어야한다. int s = 64; int ans = 0; while (x > 0) { if (x >= s) { x -= s; ans++; } s /= 2; } cout x를 계속해서 뺀다.64보다 크거나 같으면 64로 빼고 32보다 크거나 같으면 32로 빼고이를 반복하다보면 결국 x는 0이 되고 반복문은 종료된다.뺀 횟수를 ans에 넣고 마지막에 ans를 출력하면 된다. #include using namespace std;int x;int main(){ ios::sync_with_stdio(0)..
https://www.acmicpc.net/problem/11723비트 연산자를 사용하는 문제다. 문제를 보면 S에 1 ~ 20을 넣어야 한다. 중요한게 1~20 인 것이다. 0~ 19 가 아닌 1 ~ 20 이다.s = (1 그렇기에 1에서 21만틈 옆으로 shift해주었다. add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다.shift 연산자 ( s가 0000 0001 이고 4만큼 shift해야 하면 4칸 옮긴 0001 0000이 되는 것이다.0110 0011 에서 4만큼 shift를 하면 1000 1100이 된다. | 는 두 정수중 비트가 하나라도 1 이면 1로 남겨둔다. 아래처럼 말이다.1110 01000000 0010 |--------------..
AND : 두 정수에서 같은 비트만 남기기 ex)1110 00010011 1001--------------0010 0001 OR : 두 정수에서 하나라도 1이면 남기기 ex)1110 00010011 1001--------------1111 1001 XOR : 두 정수에서 다른 부분만 남기기 ex)1110 00010011 1001--------------1101 1000 NOT : 정수 하나에서 켜져있는건 끄고 꺼져있는건 키기1110 0001--------------0001 1110 XOR : 두 정수에서 하나는 1이고 하나는 0이면 키기, 나머지는 전부 끄기1110 00010011 1001--------------0001 1000 SHIFT : 정수 하나에서 왼쪽으로 한칸씩 옮기거나 오른쪽으로 한칸씩 ..

Quaternion.AngleAxis (float angle, Vector3 axis) : axis를 중심점으로 삼아서 angle만큼 회전 시킨다. Vector3.forward를 중심점으로 30만큼 회전 시키면위의 사진에서위의 사진으로 바뀐다.그렇다면 Vector3.forward를 Vector3.back으로 바꾸면 어떻게 될까아까는 Z가 30이었는데 지금은 Z가 -30이다.중심점에 따라 위처럼 차이가 난다.

Mathf.Atan2 (float y, float x) : y와 x 값을 이용해 각도를 라디안 값으로 반환위의 사진에서 tan(L) = b/a 이다. L이 있으면 b/a를 구할수있다.arctan는 tan의 역함수다. +의 역함수는 -고 tan의 역함수는 arctan이다.tan가 L로 b/a를 구할수 있다면 arctan는 b/a로 L을 구할수있다.Mathf.Atan2가 arctan인것이다.위의 값은 arctan(1/0) = arctan(+무한대)그 다음은 arctan(0/1) = arctan(+0)그 다음은 arctan(-1/0) = arctan(-무한대)그 다음은 arctan(0/-1) = arctan(-0) 을 출력한다.위에 처럼 값이 나온다. 3.14에서 유추 할수 있듯이 기본적으로 생각하는 0~36..

이제 적이 총을 쏘게 만들것이다.고려 해야 할 사항들이있다.1. 적과 플레이어 사이의 거리2. 플레이어가 적의 시야 안에 들어와야함 적과 플레이어 사이의 거리는 간단하게 구할수 있다.Vector2.Distance로 간단하게 구해 사이 거리가 4f 보다 작으면 총을 쏘게 만들것이다.이제 2번 고려 사항을 해결해야 했다.2. 플레이어가 적의 시야 안에 들어와야함이를 위해 circle collider 2D를 붙이고 Trigger를 체크했다.플레이어가 이 트리거 안에 들어오면 적은 플레이어 방향으로 레이캐스트를 쏠것이다.트리거 안에 들어온 오브젝트의 태그가 Player라면 아래 코드를 실행시킨다.적의 오른쪽을 기준으로 플레이어와의 각도를 구해주고 그 각도가 적의 시야각 안에 들어와있다면레이캐스트를 쏘게 했는데 ..

문을 만들어줬다.Hinge Joint 2D를 이용해서 만들었다. 위에 처럼 작동된다.그리고 적을 만들었다.적이 플레이어를 따라오는걸 만들기 위해 navemesh를 적용했다.위에 처럼 적용 되었다. 그리고 적 오브젝트에 enemy로 플레이어를 따라가게 만들었다. 위에 처럼 따라다니게 된다.그런데 나는 적이 회전하지 않고 따라가는게 마음에 들지 않았다.그래서 적이 움직이는 방향을 쳐다보게 스크립트를 추가했다. 단순히 플레이어를 쳐다보는 것이 아닌 움직이는 방향을 쳐다본다.