티스토리 뷰

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

function solution(quiz) {
    const answer = []
    for(let i = 0; i < quiz.length; i++) {
        const split = quiz[i].split(" ").map((v, i) => {
            if(i === 1) return v
            return Number(v)
        })
        switch(split[1]) {
            case '+':
                answer.push(split[0] + split[2] === split[4] ? 'O' : 'X')
                break
            case '-':
                answer.push(split[0] - split[2] === split[4] ? 'O' : 'X')
                break
        }
    }
    return answer
}

주어진 quiz 배열은 띄어쓰기로 구분되어 있으므로, split 이용하여 띄어쓰기 기준으로 나눔

  1. map을 사용하여 연산자(인덱스 1)를 제외한 모든 원소를 Number로 형 변환하여 새 배열로 반환
    1. 0, 2번째 인덱스 : 숫자
    2. 1번째 인덱스 : 연산자
    3. 4번째 인덱스 : 정답 
  2. switch문 이용
    1. 1번째 인덱스(연산자) 기준으로 분기
      1. 4번째 인덱스(정답)과 비교하여 일치하면 O, 불일치하면 X를 answer 배열에 push
  3. answer 반환

 


eval 을 사용한 경우가 대부분이었는데 실무에서 eval 사용은 지양하는 것을 권고한다

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함