프로그래머스 코딩테스트

[프로그래머스] 문자열 계산하기

2023. 6. 2. 17:03
목차
  1. 문제
  2. 제한사항
  3. 풀이
  4. Ps.

문제

my_string은 "3 + 5"처럼 문자열로 된 수식입니다.
문자열 my_string이 매개변수로 주어질 때,
수식을 계산한 값을 return 하는 solution 함수를 완성해주세요..
 

제한사항

연산자는 +, -만 존재합니다.
문자열의 시작과 끝에는 공백이 없습니다.
0으로 시작하는 숫자는 주어지지 않습니다.
잘못된 수식은 주어지지 않습니다.
5 ≤ my_string의 길이 ≤ 100
my_string을 계산한 결과값은 1 이상 100,000 이하입니다.
my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다.
계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다.
my_string에는 연산자가 적어도 하나 포함되어 있습니다.
return type 은 정수형입니다.
my_string의 숫자와 연산자는 공백 하나로 구분되어 있습니다.
 

풀이

function solution(my_string) {
    let splitString = my_string.split(' ');
    let result = 0;
    
    for(let i = 0; i < splitString.length; i += 2){
        if(i === 0){
            result = Number(splitString[i]);
            continue;   
        }
        
        if(splitString[i-1] === '+'){
            result += Number(splitString[i]);
        }else if(splitString[i-1] === '-'){
            result -= Number(splitString[i]);
        }
    }
    
    return result;
}

1차 풀이본.
문자열인 my_string은 시작과 끝에 공백이 없고, 숫자와 연산자는 공백 하나로 구분 되어있으니
공백 하나로 split해주어 숫자와 연산자로 이루어진 배열로 만들어 splitString 변수에 할당한 뒤
result 값을 0으로 초기화 시킨다.
 
splitString 의 원소만큼 for문으로 반복을 하는데,
splitString은 [ 숫자 - 연산자 - 숫자 - 연산자 ... ] 인 모양이므로, i는 0부터 시작해서 2씩 증가 하게 하였다.
i 가 0인 경우 (처음인 경우) result에 현재 원소(즉 첫번째 원소) 를 넣어 준뒤 continue로 넘어가준다.
 
i가 0이 아닌경우 splitString[i-1] 가 연산자 "+"인지  "-"인지를 판단 해서,
"+"인 경우 result에 splitString[i]를 더해주고, "-"인 경우 splitString[i]를 빼준다.
 
위 반복문이 완료되면 result를 리턴해준다.
 

Ps.

처음엔 수식이 연속된다고 생각을 못하고 [ a, op, b ]의 모양으로 주어질꺼라고 생각해서
3개를 기준으로 테스트를 해서 통과한 뒤 제출할때 다 실패였다.
문제와 제한사항을 꼼꼼히 읽어보는 습관을 가져야 할듯.
 


저작자표시 (새창열림)
  1. 문제
  2. 제한사항
  3. 풀이
  4. Ps.
'프로그래머스 코딩테스트' 카테고리의 다른 글
  • [프로그래머스] 치킨 쿠폰
  • [프로그래머스] 안전지대
  • [프로그래머스] 7의 개수
  • [프로그래머스] 잘라서 배열로 저장하기
FE Dev. 은옥
FE Dev. 은옥
프론트엔드 개발자의 소소한 블로그
Web dev!프론트엔드 개발자의 소소한 블로그
FE Dev. 은옥
Web dev!
FE Dev. 은옥
전체
오늘
어제
  • WEB (116)
    • Javascript (14)
    • Nest.JS (2)
    • 프로그래머스 코딩테스트 (67)
    • 튜토리얼 (28)
    • 작업물 (4)
    • 독서록 (1)

최근 글

인기 글

hELLO · Designed By 정상우.
FE Dev. 은옥
[프로그래머스] 문자열 계산하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.