728x90
반응형

c# 35

[프로그래머스 힌트/답/해석] 순서쌍의 개수

힌트 더보기 숫자 a와 숫자 b의 곱이 n이 되는 순서쌍의 개수를 반환하면 된다 n = 4 일 때 (1, 4), (2,2), (4,1) 이므로 3을 리턴 n = 5 일 때 (1,5), (5,1) 이므로 2를 리턴 n = 6 일 때 (1,6), (2,3),(3,2),(6,1) 이므로 4를 리턴 n = x 일 때 x를 나누어 나머지가 0이 되는 자연수의 수를 반환한다. 정답 더보기 return Enumerable.Range(1, n).Count(x => n % x == 0); return Enumerable.Range(1,n).Where(x =>n%x==0).ToArray().Length; 해석 더보기 Enumerable.Range(1, n) 1부터 n까지의 자연수를 저장한다 return Enumerable..

C# 2024.01.29

[프로그래머스 힌트/답/해석] 최댓값 만들기 1

힌트 더보기 int 배열 내의 숫자로 만들 수 있는 가장 큰 값을 리턴하면 된다 배열 내에 가장 큰 숫자 두 개를 찾거나 내림차순(큰 순서대로) 나열한 후 index 0과 1을 곱해주면 최댓값이 된다 정답 더보기 numbers = numbers.OrderByDescending(x => x).ToArray(); return numbers.First() * numbers.Skip(1).First(); 해석 더보기 numbers.OrderByDescending(x => x).ToArray(); numbers 배열을 OderByDescending(내림차순)으로 재정렬한 후 return numbers.First() * numbers.Skip(1).First(); 첫 번째와 두 번째 수를 곱한 값을 리턴해준다 re..

C# 2024.01.29

[프로그래머스 힌트/답/해석] 점의 위치 구하기

힌트 더보기 x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다. x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다. x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다. x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다. 정답 더보기 if (dot[0] > 0) { if (dot[1] > 0) return 1; else return 4; } else { if (dot[1] > 0) return 2; else return 3; } 해석 더보기 위의 힌트의 내용을 단순 수식화 한 것 dot[0]은 x의 값, dot[1]은 y의 값

C# 2024.01.29

[프로그래머스 힌트/답/해석] 피자 나누기2

힌트 더보기 피자를 한 판에 6조각씩 나오며 모두 같은 개수를 먹어야 한다 피자를 남기지 않아야 한다(잔반 안됨) 예시) -6명이면 한 판(6 조각)을 시키면 1조각씩 남김 없이 먹을 수 있다 -8명이면 네 판(24 조각)을 시키면 3조각씩 남김 없이 먹을 수 있다 - (x*n)%6==0 (피자 판 수 * 명 수)를 6으로 나누었을 때 나머지가 0이어야 한다 정답 더보기 LInq를 사용 var divideArray = Enumerable.Range(1, 9).Select(x => x * n); return divideArray.Where(x => x % 6 == 0).Min() / 6; 재귀함수를 사용 public int solution(int n) { int answer = n / gcd(n, 6); ..

C# 2024.01.29

[프로그래머스 힌트/답/해석/해석] 최빈값 찾기

힌트 더보기 int 배열 내에서 반복해서 나온 횟수를 기억한다 (* 2회 이상부터 기억해도 되지만 1회만 나왔을 때 예외처리를 해주어야 한다) 나온 횟수가 가장 큰 수를 리턴해준다. 최빈값이 2개 이상이면 -1을 리턴한다 - 반복문을 통해서 가장 많이 나온 숫자를 기억하는 방식 - GroupBy, Dictionary 등으로 값, 나온 횟수를 저장할 수 있다 정답 더보기 var list = array.GroupBy(x => x, g => g, (x, g) => new { n = x, cnt = g.Count() }); var max = list.Where(x => x.cnt == list.Max(o => o.cnt)); return max.Count() > 1 ? -1 : max.First().n; 해석 ..

C# 2024.01.29

[프로그래머스 힌트/답/해석] 배열의 중앙값 구하기

힌트 더보기 해당 문제는 값의 크기대로 오름차순(크기가 작은 순)으로 정렬한 후 중앙 값을 찾는 것이다 배열의 길이가 홀수임으로 배열의 길이/2 값이 중앙값이다 test[] = [1,2,3,4,5] 길이 5/2=> int 2 test[2] = 3 정답 더보기 return array.Order().ToArray()[array.Length / 2]; 해석 더보기 Linq를 사용한 코드로 array.Order()는 오름차순으로 배열을 정렬하는 코드이다

C# 2024.01.29

[프로그래머스 힌트/답/해석] 분수 더하기

힌트 더보기 -((분자1*분모2) + (분자2*분모1)) (분모1*분모2) - 계산한 분자와 분모의 값을 2부터 분자의 값까지 순서대로/역순으로 차례로 나누었을 때 나온 최대값으로 분자와 분모를 나누면 최대한 약분된 값이 나온다 정답 더보기 var numer = (numer1 * denom2) + (numer2 * denom1); var denom = denom1 * denom2; int maxNum = 1; for (int i = numer; i > 1; i--) { if (numer % i == 0 && denom % i == 0) { maxNum = i; break; } } return new int[]{numer / maxNum, denom / maxNum}; 해석 더보기 var numer = (..

C# 2024.01.29
728x90
반응형