목록분류 전체보기 (297)
거의 알고리즘 일기장
요즘 공부하고 집에 돌아오면 포스팅한 글중에 잘못푼게 있을까봐 한번씩 살펴보는게 습관이 됬다. 그리고 그때마다 후기도 한번씩 읽어보는데 요즘에 문제가 잘 안풀리는 느낌이여서 그런건지, 최근에 썼던 후기들이 다~ '난 빡대가린가..' 이런 슬픈 이야기만 있어서 눈물겨웠다. 나중에 고수가 되서 웃으면서 썼던 글들을 읽고싶다.히히

적이나 장애물을 부딛쳤을때 피격이벤트를 영상을 보고 따라 구현해봤다. 1. 먼저 가시랑 몬스터에 대한 태그, 레이어들을 설정하고 2. 가시랑 몬스터랑 맞닿아도 겹쳐지나가게 하고, 플레이어가 데미지를 입은 상태에서는 적과 닿아도 피격이벤트가 발생하지 않게 하기 위해서 ( 무적시간 ) project settings에서 아래와 같이 체크를 해제해준다. 3. 아래와 같이 스크립트에 이벤트 내용을 추가해준다. 추가 이벤트내용으로는 적에게 닿았을때 몸을 흐리게 만들고 약간의 시간동안 무적시간을 갖게 했다. void OnDamaged(Vector2 targetPos) { //player damaged gameObject.layer = 11; spriteRenderer.color = new Color(1, 1, 1, ..
https://www.acmicpc.net/problem/2098 2098번: 외판원 순회 첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j로 가기 위한 비용을 나타낸다. 항상 순회할 수 있는 경우만 입력으로 주어진다. www.acmicpc.net 풀이방법 완전탐색으로 푼다면 16!로 말도안되는 시간이 걸린다. 그러므로 dp를 추가해서 적절히 중복되는 연산을 저장하고 그 값을 이용함으로써 연산을 줄이는 방법이 필요하다. 예를 들어 1 2 3 4 5 6 7 1 2 3 4 5 7 6 1 2 3 4 6 5 7 1 2 3 4 6 7 ..

몬스터 움직임 Script using System.Collections; using System.Collections.Generic; using UnityEngine; public class Enermy : MonoBehaviour { Rigidbody2D rigid; //-1 0 1 Animator anim; public int nextMove; SpriteRenderer spRender; private void Awake() { spRender = GetComponent(); anim = GetComponent(); rigid = GetComponent(); Think(); } private void FixedUpdate() { //move rigid.velocity = new Vector2(next..
https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 풀이방법 비트연산만 할줄안다면 풀수있다. void add(int x) { S |= (1
https://www.acmicpc.net/problem/10942 10942번: 팰린드롬? 총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다. www.acmicpc.net 풀이방법 https://kunkunwoo.tistory.com/60 프로그래머스_가장 긴 팰린드롬 https://programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업.. kunkunwoo.tistory.com 이 문제와 유사하다. 자세한 설명은 위에 해놨으니..
https://www.acmicpc.net/problem/7579 7579번: 앱 입력은 3줄로 이루어져 있다. 첫 줄에는 정수 N과 M이 공백문자로 구분되어 주어지며, 둘째 줄과 셋째 줄에는 각각 N개의 정수가 공백문자로 구분되어 주어진다. 둘째 줄의 N개의 정수는 현재 활�� www.acmicpc.net 풀이방법 냅색 알고리즘의 일종이라고 한다. (알고싶다면 밑의 블로그 참조할것) https://namnamseo.tistory.com/entry/%EB%83%85%EC%83%89-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 냅색 알고리즘 냅색 문제는 유명한 다이나믹 문제 중 하나이다. (사진 출처 wikipedia.org) 가장 유치하지만 또 가장 많이 쓰이는 설명으로는, 한 가게..

하나하나 맵을 구성하는것은 아마 매우 힘들것이다. 이를 위한 기능이 있다. 바로 타일맵이다. 타일맵 사용법 사용하는 방법은 매우 간단하다. 밑의 그림을 보면 알 수 있다. Tile Palette에 들어가 뜨는 창에 이용한 sprite들을 넣는다. 그리고 창에 있는 여러가지 기능들을 사용한다. 그 외 기능들은 골드메탈 유튜브에 들어가 영상을 찾아보면 자세히 나온다. 하다보면 collider가 자동으로 생기는데 적절하게 범위가 설정되지 않는 문제가 생길수도있다. 이럴때는 sprite에 들어가 pysics shape를 적절히 설정해야 한다. 1. sprite로 들어가 아틀라스 이용할때 하는 sprite editor에 들어간다. 2. pysics shape 선택 3. 선택후 바꿔주기 동작 참고 https://w..

아틀라스를 사용하는 이유? 드로우콜을 줄이기 위해서 사용 ( 최적화와 관련 ) 애니메이션 동작 이동, 점프 ( 애니메이션 모션까지 ) Player C# Script using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { public float maxSpeed; public float jumpPower; bool isJump; Rigidbody2D rigid; SpriteRenderer spriteRenderer; Animator anim; private void Awake() { isJump = false; anim = GetComponent(); ri..

https://www.acmicpc.net/problem/1520 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으며, 각 지점 사이의 이동은 지도에서 상하좌우 이웃한 곳끼리만 가능하다. 현재 제일 왼쪽 위 칸이 나타내는 지점에 있는 세준이는 제일 오른쪽 아래 칸이 나타내는 지점으로 가려고 한다. 그런데 가능한 힘을 적게 들이고 싶어 항상 높이가 더 낮은 지점으로만 이동하여 목표 지 www.acmicpc.net 접근 주어진 조건들을 먼저보자. 시간은 2초, MxN 행렬 (M, N [백준][1520번][DP] 내리막길 내리막길 https://ww..