분류 전체보기

문제 설명한국인의 식단에서 생선은 매우 중요한 단백질 공급원이다. 반면, 지구 온난화로 인한 바닷물의 온도 상승, 그리고 지금까지 마구잡이로 물고기를 잡은 결과로 점점 우리나라의 바다에서 물고기의 수가 줄어들고 있다. 정부에서는 이 문제를 심각하게 생각하여, 물고기를 잡을 수 있는 곳과 여기서 고기잡이 배가 사용할 수 있는 그물의 폭에 제한을 두었다. 물고기는 바다 표면 근처에 살기 때문에, 그물의 높이는 중요하지 않다. 따라서 그물은 길이가 l인 직선으로 생각할 수 있고, 물고기를 잡을 때, 그물은 한 변의 길이가 1 이상 정수인 직사각형 모양으로 치게 된다. 예를 들어, l = 10이라면, 칠 수 있는 그물의 모양은 1×4, 2×3, 3×2, 4×1과 같이 4가지 형태의 직사각형이 된다.고기를 잡을 ..
13일차 요약인터페이스구현부 없이 선언부만 존재다형성 제공 커맨드 패턴행동을 객체단위로 관리하는 패턴이다.행동에 대한 추적이 편리하여 서버/클라이언트 구조에서 동기화가 용이하다.확정성이 좋다. LinqDB 쿼리와 유사한 형태를 가지는 C#의 쿼리 기능where, select, orderby 등 함수 및 키워드 지원반복문 대신 데이터를 필터링할 때 용이 CoroutineUnity에서 동시성을 제공하는 기능함수를 적절히 분리하여 실행 가능시간 제어, 조건 제어 등 다양하게 활용 가능코루틴을 사용하면 메모리에 올라가는 것이기 때문에 성능에 이슈가 있을 수 있으니 무분별하게 사용하지 않는 것이 좋다.스레드와는 조금 다른 개념코루틴은 단일 스레드에서 코루틴에 관한 오브젝트를 적절히 스케줄링하여 관리따라서, 스위칭..
12일차 요약스택(Stack)LIFO형식의 자료구조이다.활용 예시웹 브라우저 뒤로 가기 : 가장 나중에 열린 페이지부터 뒤로 가기를 실행합니다.문서작업에서 Ctrl+Z : 가장 나중에 수정한 내역부터 되돌립니다.후위 표기법 계산재귀적 알고리즘 Unity Editor CustomizingUnity Editor는 커스터 마이징하여 편리하게 사용하는 것이 가능하다.Menu Item을 만드는 방법[MenuItem("Window/Scope Checker")]Attribute를 이용하여 Menu에 추가한다.OnGUI라는 Unity Event함수를 통해 화면을 어떻게 구성할지 설정한다. Inspector를 설정하는 법Script를 작성할 때, Attribute를 설정하여 Editor에서 표시될 방식을 설정할 수 있다..
문제 설명지금 구두 수선공에게는 손님으로부터 주문 받고 제작해야 할 작업이 N개 쌓여있다. 구두 수선공은 하루에 한 작업만 수행할 수 있고, i번째 작업을 완료하는 데 Ti일이 걸린다. 이때 Ti는 정수이고 1 ≤ Ti ≤ 1000이다.i번째 작업을 시작하기 전에 하루가 지연될 때마다 구두 수선공은 보상금 Si센트를 지불해야 한다. 이때 Si는 정수이고 1 ≤ Si ≤ 10000이다. 구두 수선공을 돕기 위해 최저 보상금을 지불하는 작업 순서를 정해야 한다.하루에 2개 이상의 작업을 동시에 수행할 수 없다. 작업 i를 수행하고 있는 경우, 작업 i를 마칠 때 까지 작업 i 외의 다른 작업을 수행할 수 없다.https://www.acmicpc.net/problem/14908      제한 사항      풀..
11일차 요약링크드 리스트(Linked List)데이터 요소를 순차적으로 연결한 자료구조장점삽입, 삭제에 용이맨 앞/뒤: O(1), 중간: O(n)동적 크기단점접근에 불리: O(N)캐시 비효율역방향 탐색에 불리 더블 링크드 리스트(Double Linked List)링크드 리스트에서 이전 노드를 가리키는 포인터가 추가된 자료구조장점역방향 연산을 개선이전 노드에 대한 즉시 접근 가능단점추가적인 메모리 필요(이전 노드 포인터)삽입, 삭제 시 좀 더 복잡한 연산 필요      링크드 리스트(Linked List)데이터 요소들을 순차적으로 연결한 자료구조각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성메모리 상에서 연속적이지 않은 위치에 저장[Data|Next] -> [Data|Next] -> [Data|N..
문제 설명n×n 바둑판 모양으로 총 n2개의 방이 있다. 일부분은 검은 방이고 나머지는 모두 흰 방이다. 검은 방은 사면이 벽으로 싸여 있어 들어갈 수 없다. 서로 붙어 있는 두 개의 흰 방 사이에는 문이 있어서 지나다닐 수 있다. 윗줄 맨 왼쪽 방은 시작방으로서 항상 흰 방이고, 아랫줄 맨 오른쪽 방은 끝방으로서 역시 흰 방이다.시작방에서 출발하여 길을 찾아서 끝방으로 가는 것이 목적인데, 아래 그림의 경우에는 시작방에서 끝 방으로 갈 수가 없다. 부득이 검은 방 몇 개를 흰 방으로 바꾸어야 하는데 되도록 적은 수의 방의 색을 바꾸고 싶다.아래 그림은 n=8인 경우의 한 예이다.위 그림에서는 두 개의 검은 방(예를 들어 (4,4)의 방과 (7,8)의 방)을 흰 방으로 바꾸면, 시작방에서 끝방으로 갈 수..
10일차 요약자료형데이터 표현 최소 단위: bit8bit = 1byte같은 정수형이라 하더라도 몇 bit를 사용하느냐에 따라 표현 범위가 달라진다.U가 붙는 자료형은 unsigned로 음수를 표현하지 못한다. 배열같은 타입의 요소를 연속된 메모리 공간에 저장하는 자료구조이다.편의 함수Max(): 최댓값 반환Average(): 평균을 반환Contains(var element): element 포함 여부 반환다차원 배열다차원 배열을 선언하는 방식 2가지[,]: 정사각 형태의 다차원 배열[][]: 가변 배열(각 행의 길이가 달라질 수 있음)     자료형컴퓨터는 0, 1로 데이터를 표현한다.이를 표현하는 최소단위를 bit라고 하며 8bit를 1byte라고 한다. 각 자료형은 다음과 같은 표현 범위를 갖는다.I..
문제 설명R x C의 형태를 지닌 전차 안에는 의자와 사람들의 정보들이 주어진다. 사람들은 다리가 아픈 것을 매우 싫어하기 때문에 빈 의자가 보이면 무조건 앉으려고 한다.하지만 나보다 의자에 가까이 있는 사람이 보이면, 그 사람이 먼저 앉는다는 것을 알기 때문에 양보할 수밖에 없다.만약, 나보다 의자에 가까이 있는 사람은 없지만, 같은 거리에 있는 사람이 있으면 서로 자리를 차지하려고 할 것이므로, 그 자리는 전쟁터가 될 것이다. (심지어 모든 사람들은 싸움에 자신있기 때문에, 이러한 전쟁터를 거부하지 않는다(!) )여러분들은 이 전차의 정보가 주어질 때, 전쟁터가 될 자리의 수를 세어주면 된다.A행 B열에서 C행 D열과의 떨어진 거리 Dist는 다음과 같은 유클리드 거리로 계산된다.Dist² = (A-..
9일차 요약(UI, Character, 무한맵, Sound)UIButtonUI::OnClick을 에디터에서 설정할 수 있다.일반적인 EmptyObject와 UI용 EmptyObject의 차이일반적인 EmptyObject는 Transform을 소유하고 UI용은 Rect Transform을 소유한다.UI도 다른 Object와 동일하게 Animation을 생성하고 적용할 수 있다. 2D Image Animation원하는 Sprite를 한 번에 Hierarchy창으로 드래그하면 자동으로 Animtion이 생성된다. 무한맵무한맵을 만드는 방법은 맵을 움직여 무한으로 늘어나는 것 같이 눈속임하는 방법이 있다.Material의 offset을 움직이면 된다. 2D 캐릭터2D캐릭터는 3D와는 다른 Component를 사..
문제 설명상근이는 생일 선물로 장난감 탱크 N개를 받았다. 탱크를 가지고 놀기 전장을 만들었다. 전장은 나무판 위에 N행 N열 크기로 만들었다.각 탱크가 한 번에 움직일 수 칸은 인접한 네 칸이다. 탱크는 같은 행과 열에 있는 모든 칸을 공격할 수 있다. 따라서, 탱크는 자신이 있는 칸에 해당하는 행과 열을 보호하고 있다고 말할 수 있다.두 탱크가 동시에 같은 정사각형 안에 있을 수는 없다.이렇게 탱크를 가지고 두~세시간 동안 열심히 놀고 있었다. 상근이의 어머니는 점심까지 거르면서 놀고있는 상근이를 못마땅하게 생각했고, 당장 점심을 먹으러 오라고 소리쳤다. 상근이는 탱크가 모든 행과 열을 보호하게 배치를 바꾼 다음에 점심을 먹으러 가려고 한다. (즉, 각각의 행과 열에 하나의 탱크만 있어야 한다)이렇게..