[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
💡 로그인 하지 않아도 댓글을 등록할 수 있습니다!