C#

[프로그래머스 힌트/답/해석] OX퀴즈

Guk-blog 2024. 1. 30. 14:40
728x90
반응형

힌트

더보기

- string[] quiz는 {"1 + 2 = 3", "2 + 3 = 3"} 으로 1공백+공백2공백=공백3 과 같은 구조로 공백을 기준으로 split하여 배열로 나눌 수 있다.

- split으로 나눈 배열의 홀수번째는 +,-,=과 같은 연산 문자이다

정답

더보기
public static string[] Solution60(string[] quiz)
{
    List<string> resultList = new List<string>();
    foreach(var q in quiz) resultList.Add(IsTrue(q));
    return resultList.ToArray();
}
static string IsTrue(string s){
    var arr = s.Split(" ");
    var result = 0;
    if(arr.Skip(1).First()=="+"){ result = int.Parse(arr.First()) + int.Parse(arr.Skip(2).First());}
    else result = int.Parse(arr.First()) - int.Parse(arr.Skip(2).First());
    return result == int.Parse(arr.Last()) ? "O" : "X";
}

해석

더보기
List<string> resultList = new List<string>();

문자열 배열마다 결과를 저장하기 위한 리스트 생성

foreach(var q in quiz) resultList.Add(IsTrue(q));

배열의 숫자만큼 반복하여 리스트에 추가한다

 var arr = s.Split(" ");

 문자열을 공백을 기준으로 나누어준다

if(arr.Skip(1).First()=="+"){ result = int.Parse(arr.First()) + int.Parse(arr.Skip(2).First());}        

 arr의 두 번째 문자가 +일 경우 +연산을 해준다

else result = int.Parse(arr.First()) - int.Parse(arr.Skip(2).First());

반대의 경우 -연산을 해준다

return result == int.Parse(arr.Last()) ? "O" : "X";

 연산의 결과와 문자열 마지막의 숫자가 일치하면 O 아니면 X를 리턴해준다

 

728x90
반응형