본문 바로가기
코딩테스트/프로그래머스 기초

[코딩테스트 Lv.0] 간단한 식 계산하기

by 블루데이제이 2025. 2. 14.
728x90
반응형
문제 설명

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

제한사항
0 ≤ a, b ≤ 40,000
0을 제외하고 a, b는 0으로 시작하지 않습니다.
입출력 예
binomial	result
"43 + 12"	55
"0 - 7777"	-7777
"40000 * 40000"	1600000000
입출력 설명
입출력 예 #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 합니다.

내 풀이
Java
class Solution {
    public int solution(String binomial) {
        int answer = 0;
        
        String[] str = binomial.split(" ");
        int a = Integer.parseInt(str[0]);
        int b = Integer.parseInt(str[2]);
        String op = str[1];
        
        switch(op){
            case "+":
                answer = a + b;
                break;
            case "-":
                answer = a - b;
                break;
            case "*":
                answer = a * b;
                break;
        }
        
        
        return answer;
    }
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
int solution(const char* binomial) {
    int answer = 0;
    
    char* ptr = strtok(binomial, " ");
    int a = atoi(ptr);
   
    ptr = strtok(NULL, " ");
    char op = *ptr;
    
    ptr = strtok(NULL, " ");
    int b = atoi(ptr);
        
    if(op == '+'){
        answer = a + b;
    }else if(op == '-'){
        answer = a - b;
    }else{
        answer = a * b;
    }
    
    return answer;
}
Python
def solution(binomial):
    answer = 0
    
    str = binomial.split(" ");
    a = int(str[0])
    b = int(str[2])
    op = str[1]
    
    if op == '+':
        answer = a + b
    elif op == '-':
        answer = a - b
    else:
        answer = a * b
    
    return answer

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

728x90
반응형