코딩 테스트 맨텀 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..
코딩 테스트 맨텀 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..
코딩 테스트 맨텀 2023. 4. 3. 14:00
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/87946 나의 풀이 public int solution(int k, int[,] dungeons) { int answer = 0; int size = dungeons.GetLength(0); int[] arr = Enumerable.Range(0, size).ToArray(); var permList = new List(); Perm(arr, 0, size, size, permList); for(int i = 0; i < permList.Count; i++) { int fatigue = k; int completeDungeon = 0; int[] indexArra..
코딩 테스트 맨텀 2023. 4. 2. 13:04
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/147354 나의 풀이 public int solution(int[,] data, int col, int row_begin, int row_end) { // 1차원 배열의 리스트로 변환 var list = new List(); int width = data.GetLength(1); for(int i = 0; i < data.GetLength(0); ++i) { var array = new int[width]; for(int k = 0; k < width; ++k) array[k] = data[i, k]; list.Add(array); } // 정렬 및 누적 XOR ..
코딩 테스트 맨텀 2023. 4. 1. 13:49
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/131130 나의 풀이 public int solution(int[] cards) { int answer = 0; for(int a = 0; a < cards.Length; ++a) // 첫 상자를 완전탐색 { bool[] isVisit = Enumerable.Repeat(false, cards.Length).ToArray(); int openCountA = Check(cards, isVisit, a); if(openCountA == cards.Length) // 모든 상자가 다 열려있으면 0점으로 종료 continue; for(int b = 0; b < cards..