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
반응형