[lv.0] OX 퀴즈 | 프로그래머스
[lv.0] OX 퀴즈 | 프로그래머스
📋 [ 프로그래머스 ] 시리즈 몰아보기 (17)
✏️ (lv.0) : OX 퀴즈
덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz
가 매개변수로 주어질 때 수식이 옳다면 O
를, 틀리다면 X
를 return하는 solution을 작성하라
연산 기호와 숫자 사이는 항상 하나의 공백이 존재한다. 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않는다.
1 ≤
quiz
의 길이 ≤ 10-10,000 ≤ X, Y ≤ 10,000, -20,000 ≤ Z ≤ 20,000
연산자는
+
,-
만 주어진다.
연산 기호와 숫자 사이는 항상 하나의 공백이 존재하기 때문에 공백
을 기준으로 나누어 새로운 배열로 초기화한 후 계산을 진행하면 되겠다.
quiz의 각 원소를 순회하며
str.split()
메소드를 이용해 문자열을 자른다.- 파라미터로는 공백을 입력한다. ex) str.split(' ');
한번의 루프에 문자열 자르기 및 계산을 같이 진행하여 코드를 간소화한다.
1 | // 최초로 제출한 solution |
2 | function solution(quiz) { |
3 | var answer = []; |
4 | let temp = []; |
5 | |
6 | quiz.forEach(item => { |
7 | temp = item.split(" "); |
8 | switch (temp[1]) { |
9 | case "+": |
10 | if (parseInt(temp[0]) + parseInt(temp[2]) == parseInt(temp[4])) |
11 | answer.push("O"); |
12 | else answer.push("X"); |
13 | break; |
14 | case "-": |
15 | if (parseInt(temp[0]) - parseInt(temp[2]) == parseInt(temp[4])) |
16 | answer.push("O"); |
17 | else answer.push("X"); |
18 | break; |
19 | } |
20 | }); |
21 | return answer; |
22 | } |
23 | |
24 | // 개선된 solution |
25 | function bestSolution(quiz) { |
26 | return quiz |
27 | .map(e => e.split(" = ")) |
28 | .map(item => { |
29 | // eval()메소드를 이용하면 문자열의 계산이 가능하다. |
30 | return eval(item[0]) == item[1] ? "O" : "X"; |
31 | }); |
32 | } |
👨💻 관련 포스트
[lv.1] 개인정보 수집 유효기간
[lv.1] 개인정보 수집 유효기간
프로그래머스 lv.1 개인정보 수집 유효기간 풀이 with javascript. 해당 문제에서 한달은 28일로 고정이다. 따라서 today와 privacies 각 원소(개인정보)의 날짜를 년, 월, 일에 각 단위에 해당하는 수 * 28을 수행하여 일 단위로 변환한 후 terms에 해당하는 수를 더해 문제를 해결한다.
2023-05-30
[lv.1] 성격 유형 검사하기 | 프로그래머스
[lv.1] 성격 유형 검사하기 | 프로그래머스
프로그래머스 lv.1 성격 유형 검사하기 풀이 with javascript. javascript의 객체를 이용해 성격 유형(이하 MBTI)별 획득 점수를 기록하고 MBTI의 value를 비교해 문제를 해결한다.
2023-06-01
[lv.2] 주차 요금 계산 | 프로그래머스
[lv.2] 주차 요금 계산 | 프로그래머스
프로그래머스 lv.2 주차 요금 계산 풀이 with javascript. javascript의 객체를 이용해 차량의 입/출차 시간을 기록, 해당 객체를 순회하며 주차시간을 주어진 요금표에 맞게 정산하는 것으로 문제를 해결한다.
2023-06-04
💡 로그인 하지 않아도 댓글을 등록할 수 있습니다!