728x90
반응형
힌트
더보기
- x는 x끼리 합산, 상수는 상수끼리 합산
- x가 1이면 1x가 아닌 x를 리턴
- x가 0이면 상수값만, 상수가 0이면 x값만 리턴
정답
더보기
var polyArr = polynomial.Split(" ");
var polyNum = polyArr
.Where((x,i) => i % 2 == 0 && !int.TryParse(x, out int temp))
.Select(x => x.Length > 1 ? x.Remove(x.Length-1) : "1")
.Sum(x => int.Parse(x));
var onlyNum = polyArr
.Select(x => int.TryParse(x, out int temp) ? int.Parse(x) : 0)
.Sum();
if(polyNum == 0) return onlyNum.ToString();
if(onlyNum == 0) return polyNum > 1 ? polyNum + "x" : "x";
return string.Concat((polyNum > 1 ? polyNum + "x" : "x")+" + "+onlyNum);
해석
더보기
var polyArr = polynomial.Split(" ");
문자열을 " "을 기준으로 나눈다
var polyNum = polyArr
.Where((x,i) => i % 2 == 0 && !int.TryParse(x, out int temp))
.Select(x => x.Length > 1 ? x.Remove(x.Length-1) : "1")
.Sum(x => int.Parse(x));
Where단 -> 홀수 문자들은 연산자(+, =) 이므로 짝수 문자이면서 Int.TryParse가 False(1x이므로 변환이 안됨)인 문자들 저장
Select단 -> 문자열의 길이가 1 이상이면 마지막 문자 "x"를 제거하고 길이가 1이면 문자열 "1"을 저장
Sum단 -> 저장한 문자열을 int화하여 합산
var onlyNum = polyArr
.Select(x => int.TryParse(x, out int temp) ? int.Parse(x) : 0)
.Sum();
Select단 -> int화 가능한 수는 int화하고 안되는 자리는 0으로 저장
728x90
반응형
'C#' 카테고리의 다른 글
[프로그래머스 힌트/답/해석] 연속된 수의 합 (0) | 2024.01.30 |
---|---|
[프로그래머스 힌트/답/해석] 다음에 올 숫자 (0) | 2024.01.30 |
[프로그래머스 힌트/답/해석] 특이한 정렬 (0) | 2024.01.30 |
[프로그래머스 힌트/답/해석] 문자열 밀기 (0) | 2024.01.30 |
[프로그래머스 힌트/답/해석] 저주의 숫자 3 (1) | 2024.01.30 |