코딩 테스트 맨텀 2023. 4. 7. 13:44
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/178870 1차 시도 public int[] solution(int[] sequence, int k) { int start = 0; int end = 0; int minLength = int.MaxValue; int currentSum = 0; for(int i = 0; i sequence.Length - i ? sequence.Length - i : minLength; for(int offset = 0; offset < maxOffset;..
코딩 테스트 맨텀 2023. 4. 6. 13:28
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/42860 1차 시도 public int solution(string name) { int answer = int.MaxValue; bool[] visited = name.Select(s => s == 'A').ToArray(); // A 는 방문안해도 됨 Greedy(name, visited, 0, 0, ref answer); return answer; } private void Greedy(string name, bool[] visited, int cur, int count, ref int answer) { if(!visited[cur]) // A 면 이미 vi..
코딩 테스트 맨텀 2023. 4. 5. 14:17
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/159993 나의 풀이 public int solution(string[] maps) { var startPoint = FindChar(maps, 'S'); int dist = MoveTo(maps, 'L', startPoint, out var leverPoint); if(dist == -1) return -1; else { int dist2 = MoveTo(maps, 'E', leverPoint, out var _); return dist2 == -1 ? -1 : dist + dist2; } } private (int, int) FindChar(string[] m..
코딩 테스트 맨텀 2023. 4. 4. 15:51
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/12952 1차 시도 public int solution(int n) { int answer = 0; // 한 줄에 한개의 퀸만 들어갈 수 있다. // 우선 0 ~ n - 1 로 만들 수 있는 순열을 만든다. int[] arr = Enumerable.Range(0, n).ToArray(); var list = new List(); Perm(list, arr, 0, n, n); // 퀸은 자신의 위치에서 가로가 k차이 나면 세로 절대값 k차이는 같이 배치될 수 없다. foreach(int[] nums in list) { if(IsValid(nums, n)) ++ans..
Unity/유니티 엔진 동작 관련 맨텀 2023. 4. 3. 21:44
레이어 마스크 관련해서는 프로젝트 초기에나 작업하기 때문에 가끔씩 상기시키지 않으면 헷갈리기 쉽다. LayerMask 구조체 유니티에 내장되어 있는 LayerMask 구조체는 내부를 뜯어보면 int 형을 감싸고 있는 래퍼 클래스일 뿐이다. 마스크는 int형에 비트연산을 사용하기 때문에 여러 레이어를 동시에 사용하려면 비트연산을 통해 구해야 한다. 레이어 마스크 구하기 public static int GetMask(params string[] layerNames) LayerMask.GetMask 함수를 통해서 마스크를 구할 수 있다. 앞서 말했듯 기본적으로 비크 마스크 연산이기 때문에 int mask = (1
코딩 테스트 맨텀 2023. 4. 3. 16:15
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/152996 1차 시도 public long solution(int[] weights) { long answer = 0; var location = new int[3]{ 2, 3, 4 }; var hash = new HashSet(); for(int a = 0; a < weights.Length; ++a) { for(int b = 0; b < weights.Length; ++b) { if(a == b) continue; if(hash.Contains((a, b))) continue; hash.Add((a, b)); hash.Add((b, a)); if(IsMatch..