▶ C# 자료구조 그래프를 공부하면서 한 번 풀어보았습니다. 1. 문제설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 2. 제한사항 ● 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. ● 각 컴퓨터는 0부터 n-1인 정수로..
c#
유닛과 적군이 만나면 서로 공격하는 기능을 만들었고, 기존의 유닛과 적군의 이동 기능을 조금 수정했습니다. 유닛 공격 기능 유닛과 적군끼리 공격하는 기능을 만들기 위해 각각의 스크립트를 새로 만들어줬습니다. 공격 기능 함수를 만들기 전에 어떻게 하면 서로 공격할지 생각해봤습니다. 1. 유닛의 공격범위 안에 적군이 들어오면, 들어온 순서대로 공격을 해야되기 때문에 공격리스트를 만들어서 순서대로 넣어줄 겁니다. 2. 공격 리스트에 적군이 추가되었다는 것은 공격 범위 안에 적군이 들어왔다는 뜻이니까 움직임을 멈추고 공격하게 만들겁니다. 3. 공격할 때 미리 설정해놓은 적군의 Hp에서 유닛의 Damage를 공격속도에 따라 차감하도록 해줄겁니다. 4. 만약 적군의 Hp가 0보다 같거나 작아지면 해당 적군 오브젝트..
1. 문제설명 사과의 점수가 담긴 1차원 배열 score., score의 최고 점수를 나타내는 k, 사과를 팔 수 있는 박스의 용량 m(m개가 되야 팔 수 있음). (m개의 점수를 담은 사과 박스의 최저 점수) x m x (상자의 개수) = 해당 사과 박스의 최대 이익. answer = 최대 이익들의 합. 2. 제한사항 ● 3 ≤ k ≤ 9 ● 3 ≤ m ≤ 10 ● 7 ≤ score의 길이 ≤ 1,000,000 ● 1 ≤ score[i] ≤ k ● 이익이 발생하지 않는 경우에는 0을 return 해주세요. 3. 입출력 예시 k m score return 3 4 [1,2,3,1,2,3,1] 8 4 3 [4,1,2,2,4,4,4,4,1,2,4,2] 33 4. 나의 풀이 시간복잡도를 고려하지 않고 직관적으로..
프로그래머스 스킬 테스트 하다가 해당 문제가 나왔길래 한 번 풀어보고 업로드한 것입니다. 1. 문제설명 문제에서 개인정보의 처음 수집날짜와 유효기간의 종류가 들어있는 1차원 배열 privacies, 유효기간의 종류와 해당 유효기간이 들어있는 1차원 배열 terms, 오늘 날짜를 의미하는 문자열 today를 줍니다. privacies의 개인정보 유효기간이 today보다 작거나 같으면 파기합니다. 파기할 번호를 오름차순으로 리턴하시오. 2. 제한사항 ● today는 "YYYY.MM.DD" 형태로 오늘 날짜를 나타냅니다. ● 1 ≤ terms의 길이 ≤ 20 ○ terms의 원소는 "약관 종류 유효기간" 형태의 약관 종류와 유효기간을 공백 하나로 구분한 문자열입니다. ○ 약관 종류는 A~Z중 알파벳 대문자 하..
1. 문제설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 2. 제한사항 ● operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. ● operations의 원소는 큐가 수행할 연산을 나타냅니다. ● 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합니다. ● 빈 큐에 데이터를 삭제하라는 연산이 주어질 경우, 해당 연산은 무시합니다. 3. 입출력 예시 operati..
1. 문제설명 코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다. 예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다. 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다.착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다.코니는 하루에 최소 한 개의 의상은 입습니다. 코니가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 retur..
1. 해시셋이란? 해시셋은 딕셔너리와 해시테이블과 달리 키 따로 없고 밸류를 저장하는 컬렉션입니다. 해시테이블과 달리 데이터 타입을 명확히 써줘야 합니다. 또한 중복된 밸류를 허용하지 않으며, 리스트와 달리 순서가 따로 없습니다. 그래서 인덱스를 사용하여 접근할 수 없습니다. using.System.Collections.Generic; 으로 사용할 수 있습니다. 해시를 기반으로 값을 관리하기 때문에 값의 추가, 탐색, 제거 기능이 리스트보다 뛰어납니다. 2. 해시셋을 사용해보자! 1. Add(T item) - 추가 해시셋에 추가할 데이터를 Add를 통해 추가할 수 있습니다. 추가하려는 데이터 값이 이미 해당 해시셋에 존재하는 값일 경우 중복처리되어 추가되지 않습니다. public void TestHash..
이번에는 게임창에서 유닛 버튼을 눌렀을 때 똑같은 지정 유닛이 필드에 늘어나게 하는 작업, 일정시간이 지나면 지정 적군 유닛이 계속 필드에 나오게 하는 작업, 유닛은 적군과 만나면 충돌하고, 유닛은 유닛끼리, 적군은 적군끼리 충돌하지 않는 작업 을 해주려고 합니다. 1. 유닛 복제 - Instantiate 우선, 하나의 스크립트로 할 수도 있지만, 유닛과 적군이 명확히 구분되어 있다는 점과 가독성의 편리를위해 UnitSpawner, EnemySpawner 스크립트를 각각 생성해주었습니다. 각각의 스크립트에 각각의 프리팹을 넣어줄 prfUnit과 prfEnemy 변수를 생성했습니다. 먼저, 유닛은 이전에 버튼을 누르면 유닛이 SetActive(true)되도록 만들었습니다. UnitSpawner 스크립트에서..
이번에도 영상녹화가 습관이 들지 않아 이미 만들어놓은 것을 캡쳐해서 올리도록 하겠습니다. 하하.. 1. 게임오브젝트 프리팹화 먼저, 유니티 하이라키에 만들어놓은 유닛과 적군 오브젝트를 프로젝트에 만들어놓은 프리팹 폴더에 넣어 프리팹화 해주겠습니다. 이러면 하이라키에서 유닛과 적군 오브젝트에 들어있던 컴포넌트들이 저장된 상태에서 프리팹으로 변환되게 됩니다. 2. 이동구현 먼저, MovementController라는 이동구현을 위한 새로운 스크립트를 생성해주었습니다. 그 다음은 변수를 생성해줍니다. -컴포넌트에 만들어놓은 Rigidbody를 담을 수 있는 myRigid 변수 생성 -이동을 담당한 Vector3의 값을 가지는 direction 변수 생성. -유닛의 이동속도를 담당할 float형태의 speed ..
1. 문제설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. ● 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. ● 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. ● 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 2. 제한사항 ● n은 1,000,000 이하의 자연수 입니다. 3. 입출력 예시 n return 78 83 15 23 4. 나의 풀이 public int solution(int n) { i..