코딩 테스트 맨텀 2023. 5. 15. 12:52
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/42627 나의 풀이 public int solution(int[,] jobs) { var jobQueue = new Queue( Enumerable.Range(0, jobs.GetLength(0)) .Select(e => (jobs[e, 0], jobs[e, 1])) .OrderBy(e => e.Item1) ); int time = 0; int curRequestTime = 0; int curRemain = 0; int completeTimeSum = 0; var jobCanStart = new List(); while(jobQueue.Count > 0 || jo..
코딩 테스트 맨텀 2023. 5. 14. 11:14
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/12904 나의 풀이 public int solution(string s) { int answer = 1; for(int i = 1; i < s.Length - 1; ++i) { // 홀수 구성 체크 aba Check(s, 1, i, i, ref answer); // 짝수 구성 체크 abba if(s[i] == s[i + 1]) Check(s, 2, i, i + 1, ref answer); } return answer; } void Check(string s, int startCount, int left, int right, ref int answer) { int ..
코딩 테스트 맨텀 2023. 5. 13. 15:20
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/77486 1차 시도 public int[] solution(string[] enroll, string[] referral, string[] seller, int[] amount) { int[] answer = new int[enroll.Length]; var enrollDict = Enumerable.Range(0, enroll.Length) .ToDictionary(e => enroll[e], e => referral[e]); for(int i = 0; i < seller.Length; ++i) { string s = seller[i]; int money = a..
코딩 테스트 맨텀 2023. 5. 11. 23:02
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/43164 나의 풀이 public string[] solution(string[,] tickets) { string[] cur = new string[tickets.GetLength(0) + 1]; string[] answer = null; // 시작점을 기준으로 각 티켓을 분류한다. var dict = new Dictionary(); for(int i = 0; i < tickets.GetLength(0); ++i) { if(!dict.TryGetValue(tickets[i, 0], out var list)) { list = new List(); dict.Add(t..
코딩 테스트 맨텀 2023. 5. 7. 16:29
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/12979 나의 풀이 public int solution(int n, int[] stations, int w) { int answer = 0; int width = (w * 2 + 1); // station을 순회하면서 station의 범위에 닿지않은 chunk를 범위로 나눠준다. int index = 1; foreach(int s in stations) { int chunkCount = (s - w) - index; if(chunkCount > 0) answer += (chunkCount + width - 1) / width; index = s + w + 1; /..
코딩 테스트 맨텀 2023. 5. 6. 11:34
출처: 프로그래머스 코딩 테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/12987 나의 코드 public int solution(int[] A, int[] B) { int answer = 0; var listB = B.OrderByDescending(o => o).ToList(); foreach(int cur in A.OrderByDescending(o => o)) { if(cur >= listB[answer]) continue; // B의 현재 최대값이 이길 수 있을 때 까지 넘김 ++answer; } return answer; } 비기거나 지는 경우 점수가 변하지 않는다 -> 이기는 경우만 생각하면 된다. 출전 순서에 따라서 점수가..