호우동의 개발일지

Today :

article thumbnail
[C++] 백준 22871 - 징검다리 건너기 (large)
Algorithm/BOJ 2023. 3. 16. 16:27

문제 이해 단계 https://www.acmicpc.net/problem/22871 22871번: 징검다리 건너기 (large) $N$개의 돌이 일렬로 나열 되어 있다. $N$개의 돌에는 수 $A_{1} A_{2} ... A_{i} ... A_{N}$로 부여되어 있다. 가장 왼쪽에 있는 돌에서 출발하여 가장 오른쪽에 있는 돌로 건너가려고 한다. 항상 오른쪽으 www.acmicpc.net N개의 돌이 일렬로 나열되어 있고 목표는 가장 왼쪽 돌에서 가장 오른쪽 돈으로 이동하는 것이다.이동하는 데에는 아래 3가지 조건이 따른다. 1. 무조건 왼쪽에서 오른쪽으로만 움직일 수 있다. 2. i번째 돌에서 j번째 돌로 이동할 때 드는 힘 K는 ( j - i ) * ( 1 + (A_i) - |A_j| )이다. 3. 돌..

article thumbnail
[C++] 프로그래머스 Level 3 - 연속 펄스 부분 수열의 합
Algorithm/Programmers 2023. 3. 15. 17:23

문제 이해 단계 연속 부분 수열과 같은 길이의 펄스 수열이 존재한다. 펄스 수열 : {1,-1,1,-1...} or {-1,1,-1,1,-1..} 이런 식으로 1과 -1이 번갈아가며 나오는 수열 연속 부분 수열 : 한 수열에서 끊기지 않고 연속해서 나열되어 있는 수열 ex ) {4,5,-3,2,0,-2,-1,-2}에서 {4,5-3}, {0,-2}, {-2,-1,-2} , {-1}은 연속 부분 수열임 연속 부분 수열과 펄스 수열을 각 원소끼리 곱하여 연속 펄스 부분 수열을 만든다고 가정한다. 이때 나올 수 있는 부분 집합 중, 원소의 합이 가장 큰 부분 집합을 구해서 그때의 합을 구하는 문제 문제 접근 단계 이 문제를 복잡하게 하는 부분은 연속 부분 수열의 시작점을 모른다는 것과 펄스 수열이 -1로 시작할..

article thumbnail
[C++] 백준/BOJ - 16926 : 배열돌리기 1
Algorithm/BOJ 2023. 1. 31. 13:50

문제 이해 단계 https://www.acmicpc.net/problem/16926 문제 자체를 NxM 배열이 주어지고 회전 횟수 R이 주어진다. 회전 횟수 R만큼 반시계방향으로 예제로 주어진 패턴처럼 돌리면 된다. 그림을 보면 쉽게 패턴 파악이 가능하기 때문에 따로 설명은 안 하겠다. 문제 접근 단계 이 문제는 배열을 반시계방향으로 회전시키는 것이기 때문에, 단순 구현 문제에 해당하는 것 같다. 문제는 같은 행이나 열에 있는 것은 그냥 오른쪽에 있는 값을 가져오면 되는데, 각 모서리에 있는 값 같은 경우는 가져와야 하는 부분이 각각 다르다. 예를 들어 아래 그림과 같이 왼쪽 위는 오른쪽에서, 오른쪽 위는 아래에서,오른쪽 아래는 왼쪽에서, 왼쪽 아래는 위에서 가져와야 한다. 이 규칙은 안에 있는 사각형에..

[C++] 백준 20164 - 홀수 홀릭 호석
Algorithm/BOJ 2023. 1. 27. 15:41

문제 이해 단계 https://www.acmicpc.net/problem/20164 홀수개의 숫자가 입력으로 들어온다. 이때 숫자의 개수에 따라 다음에 규칙에 따른다. 숫자의 개수가 1개 -> 그대로 숫자의 개수 2개 -> 두 수를 더함 숫자의 개수 3개 이상 -> 임의의 지점에서 세 수를 나누어서 더함 위 행위를 숫자의 자릿수가 하나가 남을 때까지 반복한다. 이 과정에서 홀수가 총 몇 번 등장하는지를 세는 것인데, 숫자의 개수가 3개 이상일 때는 임의의 지점에서 나누기 때문에 여러 가지 경우의 수가 생긴다. 그래서 나올 수 있는 홀수의 최댓값과 최솟값을 구하는 문제이다. 문제 접근 단계 해당 문제에서의 핵심은 숫자의 개수가 3개 이상일 때 숫자를 3개의 분할로 나누는 것이다. 이걸 어떤 식으로 나눠야 ..

article thumbnail
[Unity 3D] 나인슬라이스(9-Slice)의 사용법과 필요성
Unity Study/Concept 2023. 1. 25. 21:20

9 Slice 이미지를 9조각으로 나누어 영역별로 사이즈를 조절하는 테크닉 Image Type Image 컴포넌트 속성 중 Image Type에서 사용 Sliced와 Tiled에서 사용 9 Slice가 되어있지 않으면 Sliced와 Tiled 사용 불가능 9 Slice 사용 Project에 이미지 원본 파일을 클릭 Inspector에서 Sprite Editor 클릭 아래와 같이 초록색 선으로 9개의 네모 영역을 만든 후, 우측 상단에 Apply 경고 문구가 사라진 것을 확인할 수 있다. 9 Slice를 하면 뭐가 다를까? 그림으로 보는 것이 가장 빠르다. 왼쪽은 Sliced 적용 / 오른쪽은 Simple 이미지이다. Simple은 크기가 바뀔 때마다 전체 이미지 비율이 그에 상응하여 바뀐다. Sliced..

article thumbnail
[C++] 백준/BOJ - 17276 : 배열 돌리기 ( 덱을 이용한 풀이 )
Algorithm/BOJ 2023. 1. 25. 14:59

문제 이해 단계 https://www.acmicpc.net/problem/16926 문제 조건만 보면 무슨 소리인지 전혀 모르겠는데 밑에 첨삭된 그림을 보면 어떤 식으로 배열하라는지 바로 알겠다. 그림처럼 가운데를 중심으로 X자 모양으로 2개의 직선과 + 모양으로 2개의 직선을 그리는 것이다. 그리고 가운데를 중심으로 45도를 단위로 돌렸을 때의 결과를 구하는 문제이다. 문제 접근 단계 해당 문제에서 요구하는 것은 배열을 회전시키는 것이다. 회전시켰다는 것을 확인하기 위해 12시 방향에 있던 5가 3시 방향에 위치하는 등, 어떤 그룹의 이동을 통해 확인한다. 여기서 생각이 든 게, 저 배열들을 확실한 그룹으로 나눌 수 없을까? 아래 그림같이 나누면 n이 아무리 늘어나도 같은 방식으로 포함시키면 되기 때문..

[C++] 프로그래머스 Level 3 - N으로 표현
Algorithm/Programmers 2023. 1. 20. 11:50

문제 이해 단계 주어지는 입력은 사용할 수 있는 숫자 N과 만들어야 하는 Number 2개이다. 숫자 N을 통해 할 수 있는 작업은 아래의 2가지 작업 밖에 없다. 1. 사칙연산 2. N을 연속해서 이어 붙이기(ex : 22, 33, 555) 이를 이용해서 Number를 만드는데, 숫자 N을 최대한 적게 사용해야 한다. 이때 숫자 N은 몇 개일까? 만약 8개가 넘는다면 -1을 반환한다. 문제 접근 단계 처음에는 해당 문제가 단순한 사칙연산을 이용한 수학 연산 문제라고 생각했는데, N을 연속해서 이어 붙일 수 있다는 조건에서 단순한 수학 연산은 아닐 것이라는 생각이 들었다. 그래서 일단 N이 1개 일 때부터 만들 수 있는 조합에 대해 적어보기로 했다. N이 1개일 때 N N이 2개일 때 NN, (N+N),..

article thumbnail
[Unity 3D] GUI를 이용한 인스펙터(Inspector) 커스터마이징

목표 오브젝트에 스크립트를 넣어 인스펙터 뷰를 커스터마이징 직렬화(Serialization) - 해당 필드를 유니티가 인식할 수 있는 상태로 만드는 것 - 유니티가 처리할 수 있는 형태로 만드는 것- Inspect를 조작하기 위해선 직렬화는 필수적인 과정 -> 유니티가 직렬화할 수 있는 오브젝트를 만들어야 한다. CustomEditor와 Editor 우선 커스터마이징 할 스크립트[CustomScript]를 작성한다. public class CustomScript : MonoBehaviour { public GameObject otherObject; public string myName; public int myHp; } 커스터마이징 에디터 스크립트[CustomEditorTest]를 CustomScript..