전체 글 483

※[프로그래머스]Lv.2 삼각 달팽이C# (나머지값으로 방향구하기)

https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 using System; using System.Collections.Generic; public class Solution { public int[] solution(int n) { List answer = new List(); int[,] board = new int[n, n]; int num = 1; int y = -1; int x = 0; for (int i = 0; i < n; ..

[C++] STL(Standard Template Library)

STL 이란? C++로 프로그래밍할 때 필요한 자료구조나 알고리즘들을 템플릿으로 제공하는 라이브러리이다. 컨테이너(Container) 데이터를 저장하는 객체 (자료구조 Data Structure)를 포함한다. 시퀀스 컨테이너 - vector, list, deque 3가지를 제공한다. vector vector는 동적 배열로 동적으로 커지는 배열을 의미한다. 미리 여분의 공간을 생성하며 여분의 공간을 모두 소모하면 추가로 여분의 공간을 지속적으로 생성하면서 동적으로 배열을 만든다. vector는 원소가 하나의 메모리 블록에 연속하게 저장돼야 하는 특징을 가지고 있다. size 동적 배열 안에 실제로 사용하고 있는 크기를 리턴하며 데이터가 삭제되면 함께 줄어든다. capacity 실제사용하고 있는 크기뿐 아니..

VisualStudio/C++ 2023.07.25

※[프로그래머스]Lv.2 마법의 엘리베이터C# (곱셈 나눗셈으로 나머지)

https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드1(시간복잡도 오류) using System; using System.Collections.Generic; using System.Linq; public class Solution { public int solution(int storey) { int answer = 0; string str = storey.ToString(); Dictionary dic = new Dictionary()..

[C++] 형변환 (static_cast, dynamic_cast, const_cast, reinterpret_cast)

static_cast타입을 변경할 때 상식정인 캐스팅만 허용된다. Ex)1) int float 등2) Parent* -> Sun* (다운캐스팅) 안전성은 보장하지 않는다. 아래 코드에서 보면 sun2 또 한 parent를 상속받기 때문에 parent로 캐스팅되고이 parent를  static_cast를 사용하여 sun1으로 캐스팅이 되지만 서로 설계한 매개변수가 다르기 때문에 잘 못 된 메모리를 접근할 수 있다.class Parent{};class Sun1 : public Parent{};class Sun2 : public Parent{};int main(){ int hp = 100; int maxHp = 200; float ratio = static_cast(hp / maxHp); cout (pare..

VisualStudio/C++ 2023.07.24

[C++] 타입변환에서 소멸자 Virtual 사용

상속을 받는 클래스가 있다고 가정하자. c++에서는 생성자는 부모클래스 생성자에서 자식클래스의 생성자 순으로 호출된다. 소멸자에서 만약 부모 클래스의 소멸자에 Virtual을 정의했다면 제거할 때 자식클래스의 소멸자가 호출된 후 부모 클래스의 소멸자가 호출된다. Virtual 클래스로 소멸자를 정의하지 않은 상태에서 자식클래스를 부모클래스 포인터를 사용하여 제거를 한다면 부모클래스의 소멸자만 호출되며 자식의 소멸자는 호출되지 않는 다 즉 완벽하게 제거가 이루어졌다고 볼 수 없다. virtual로 정의한 부모클래스에서 부모포인터로 삭제 할 때 자식의 소멸자가 호출되는 이유는 virtual로 정의된 클래스가 있다면 가상함수테이블이 만들어져 바이너리 영역에 기록되며 해당 클래스로 만들어진 객체에서 함수를 호출..

VisualStudio/C++ 2023.07.24

[프로그래머스]Lv.2 이진 변환 반복하기 C#

https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 using System; public class Solution { public int[] solution(string s) { int[] answer = new int[2]; string binary = s; while (binary.Length > 1) { for (int i = 0; i < binary.Length; i++) { if (binary[i] == '0') answer[1..

[자료구조] 달팽이 알고리즘 C#

달팽이 알고리즘(Snail Sort 또는 Spiral Order Traversal)은 행렬(matrix)을 처음부터 끝까지 달팽이의 움직임과 유사하게 순회하는 알고리즘입니다. 이 알고리즘은 행렬의 각 원소를 한 번씩만 방문하면서 순회합니다. 알고리즘의 움직임은 아래와 같습니다: 첫 번째 행을 왼쪽에서 오른쪽으로 순회합니다. 마지막 열을 위에서 아래로 순회합니다. 마지막 행을 오른쪽에서 왼쪽으로 순회합니다. 첫 번째 열을 아래에서 위로 순회합니다. 이 과정을 반복하면서 행렬의 중앙까지 진행하게 됩니다. 만약 행과 열의 크기가 홀수인 경우에는 마지막 단계에서 중앙에 위치한 원소가 중복해서 방문되게 됩니다. 다음은 3x3 행렬에 대한 달팽이 알고리즘의 동작 예시입니다: 1 2 3 8 9 4 7 6 5 이 알고..

※[프로그래머스]Lv.2 모음 사전 C#(순열)

https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr소스코드using System;using System.Collections.Generic;public class Solution{ List list = new List(); public int solution(string word) { int answer = 0; for (int i = 1; i f == word); return answer + 1..

※[프로그래머스]Lv.2 피로도 C#(순열)

https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 미뤄두고 있던 순열을 공부하기에 좋았던 문제였다. using System; using System.Collections.Generic; public class Solution { List list = new List(); public int solution(int k, int[,] dungeons) { int answer = -1; int size = dungeons.GetLength(0..

[자료구조] 순열(Permutation)개념 구현 C#

순열(Permutation)순열이란 순서가 부여된 서로 다른 원소배열을 중복없이 순서에 맞게 나열하는 것이다.예를들어 1,2,3 이란 배열을 순열한다면 아래처럼 된다.1,2,31,3,22,1,32,3,13,1,23,2,1순열을 구하는 기본적인 방법은 재귀를 통해 DEPTH의 위치와 각위치의 숫자를 스왑하여 재귀로 호출하고 다시 원복하는 것 이다. 재귀를 호출 할 때 DEPTH와 i가 같을 때는 원래위치도 순열 중 하나이기 때문에 그대로 진행한다. 종료시에는 DEPTH와 구하려는 길이가 같은 시점에서 재귀를 종료하면 된다. 소스코드 static void Main(string[] args) { int[] datas = new int[] { 1, 2, 3 }; ..

[프로그래머스]Lv.2 주차 요금 계산 C#

https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 using System; using System.Collections.Generic; using System.Linq; public class Solution { public int[] solution(int[] fees, string[] records) { List answer = new List(); int defTime = fees[0]; int defPrice = fees[1]; ..

[프로그래머스]Lv.2 두 큐 합 같게 만들기 C#

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 using System; using System.Collections.Generic; using System.Linq; public class Solution { public int solution(int[] queue1, int[] queue2) { int answer = 0; Queue q1 = new Queue(queue1.Select(s => (long)s)); Queue q2 ..

[Unity] 유니티 오브젝트 Fake Null과 Null 처리

Fake Null 우리는 유니티 게임 오브젝트를 파괴하기 위해서 UnityEngine.Object를 GameObject.Destroy();를 통해 오브젝트가 메모리를 해제한다. UnityEngine.Object클래스는 C++ 유니티 엔진 코드에 존재하는 NativeObject객체에 포인터를 가지고 있는 C++객체를 감싸 포함하고 있는 C#클래스이다. C++은 메모리를 포인터로 관리하고 C#은 가비지컬렉션이 메모리해제를 관리하며 이 차이점 때문에 Fake Null이 발생하게 된다. 즉 C++로 만들어진 클래스를 C#으로 한 번 더 감싸고 있다고 생각하자. 결국 GameObject.Destroy();를 통해 오브젝트를 파괴 한다는 것 은 UnityEngine.Object의 내부의 C++ NativeObjec..

Unity 2023.07.13

[프로그래머스]Lv.2 할인 행사 C#

https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 using System; using System.Collections.Generic; public class Solution { public int solution(string[] want, int[] number, string[] discount) { int answer = 0; Dictionary dicWant = new Dictionary(); Dictionary dic = new..

※[프로그래머스]Lv.2 롤케이크 자르기C# (순차적으로 줄여나가기)

https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 using System; using System.Collections.Generic; public class Solution { public int solution(int[] topping) { int answer = 0; Dictionary dicL = new Dictionary(); Dictionary dicR = new Dictionary(); foreach (int i in to..

※[프로그래머스]Lv.2 귤 고르기C# (Dictionary.TryAdd 중복 카운터)

https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드1 using System; using System.Collections.Generic; using System.Linq; public class Solution { public int solution(int k, int[] tangerine) { int answer = 0; var distinct = tangerine.GroupBy(g => g).Select(s => s.Count())..

※[프로그래머스]Lv.2 숫자 변환하기 C# (Hashset)

https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 using System; using System.Collections.Generic; public class Solution { public int solution(int x, int y, int n) { int answer = 0; List targets = new List { x }; List results = new List(); HashSet sames = new HashSet(..

※[프로그래머스]Lv.2 뒤에 있는 큰 수 찾기 C# (시간복잡도오류, 스택)

https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 뒤에있는 숫자를 구할 때는 스택을 사용하는게 편리하다. using System; using System.Collections.Generic; using System.Linq; public class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers.Length]; Array.Fill(answe..

[Unity] 미니맵 만드는 방법

카메라 생성 시점 조정 카메라 Projection을 Perspective에서 Orthographic으로 변경 Perspective와 Orthographic의 차이점은 원근법에 차이로 Perspective는 원근법이 적용되며 Orthographic는 원근법이 적용되지 않는다. Size 적용 원하는 Map Size에 맞게 size를 조정한다 Render Texture 생성 Assets폴더 안에 원하는 폴더하위 자식으로 Render Texture을 생성한다. ui - Raw Image생성 Raw Image와 Render Texture 연결 Raw Image의 texture에 만들었던 Render Texture를 연결한다. Camera와 Render Texture 연결 camera -> render textur..

Unity 2023.07.04