코딩테스트

C# 알고리즘 - 간단한 식 계산하기

작성자 정보

  • 마스터 작성
  • 작성일

컨텐츠 정보

본문

[문제 설명]

문자열 binomial이 매개변수로 주어집니다. binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.

 

[제한사항]

0 ≤ a, b ≤ 40,000

0을 제외하고 a, b는 0으로 시작하지 않습니다.

 

[입출력 예]

 

[입출력 예 설명]

입출력 예 #1

예제 1번의 binomial은 "43 + 12"로 이 식을 계산한 결과인 43 + 12 = 55를 return 합니다.

 

입출력 예 #2

예제 2번의 binomial은 "0 - 7777"로 이 식을 계산한 결과인 0 - 7777 = -7777을 return 합니다.

 

입출력 예 #3

예제 3번의 binomial은 "40000 * 40000"으로 이 식을 계산한 결과인 40000 × 40000 = 1600000000을 return 합니다.

 

[코드]

using System;

using System.Collections.Generic;

using System.Linq;


public class Solution {

    public int solution(string binomial) {

        List<string> list = new List<string>();

        int answer = 0;

        if(binomial.Contains("+"))

           {

               list= binomial.Split("+").ToList(); 

               answer = Convert.ToInt32(list[0]) + Convert.ToInt32(list[1]);

           }

           

        else if (binomial.Contains("-"))

           {

               list= binomial.Split("-").ToList();

                answer = Convert.ToInt32(list[0]) - Convert.ToInt32(list[1]);

           }

        else if(binomial.Contains("*"))

        {

            list= binomial.Split("*").ToList();

            answer = Convert.ToInt32(list[0]) * Convert.ToInt32(list[1]);

        }

        

        return answer;

    }

}

 

[풀이]

1.using선언

 

using System;

using System.Collections.Generic;

using System.Linq;

 

2.리스트 선언 - 문자열을 잘라 리스트에 담을 계획

List<string> list = new List<string>();

 

3.매개변수를 if문 돌리기

포함된 부호의 값으로 분기점 구분하기

Split()으로 자르고 

ToList로 담기

형변환 후 계산하기

if(binomial.Contains("+"))

{

      list= binomial.Split("+").ToList(); 

      answer = Convert.ToInt32(list[0]) + Convert.ToInt32(list[1]);

}

else if (binomial.Contains("-"))

{

     list= binomial.Split("-").ToList();

     answer = Convert.ToInt32(list[0]) - Convert.ToInt32(list[1]);

}

else if(binomial.Contains("*"))

{

     list= binomial.Split("*").ToList();

     answer = Convert.ToInt32(list[0]) * Convert.ToInt32(list[1]);

 

}

 

 

 

[주소]

https://school.programmers.co.kr/learn/courses/30/lessons/181865

해당 알고리즘 문제는 프로그래머스의 알고리즘 문제입니다.

관련자료

댓글 0
등록된 댓글이 없습니다.
알림 0