https://school.programmers.co.kr/learn/courses/30/lessons/120907?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
quiz배열을 순차적을 돌면서 " = "을 기준으로 배열을 나눴다.
" + "의 포함 여부를 확인하고 계산한 값을 확인한다.
3항연산자를 이용해서 result배열에 결과값을 담아 return했다.
const solution = (quiz) => {
let result = [];
for(let item of quiz){
item = item.split(" = ");
if(item[0].includes(" + ")){
temp = item[0].split(" + ");
parseInt(item[1]) === parseInt(temp[0]) + parseInt(temp[1]) ? result.push("O") : result.push("X");
}
else{
temp = item[0].split(" - ");
parseInt(item[1]) === parseInt(temp[0]) - parseInt(temp[1]) ? result.push("O") : result.push("X");
}
}
return result;
};
console.log(solution(["3 - 4 = -3", "5 + 6 = 11"]));
console.log(solution(["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"]));
아래 코드는 다른 사람의 코드이다.
map함수를 이용해서 풀었는데, 여기서 새롭게 알게 된 첫번째 점은 구조 분해 할당을 이용하면 좀더 보기 편하게 바꿀 수 있다는 것이다.
두번째는 음수 계산을 3항 연산자를 활용해서 1, -1을 활용했다는 점에서 새롭게 배웠다.
세번째는 parseInt를 활용해 형변환을 했는데 +를 통해서 형변환을 할 수 있다는 것을 알게 되었다.
그리고 아래 코드 말고 다른 코드를 통해서 파이썬과 같이 eval()함수도 있다는 것을 알게 되었다.
function solution(quiz) {
var answer = [];
return quiz.map(t => {
const [calc, result] = t.split(' = ');
const sign = calc.includes('+') ? 1 : -1
const [a, b] = calc.split(sign === 1 ? ' + ' : ' - ');
return +a + (+b * sign) === +result ? 'O' : 'X'
});
}
'PS > 프로그래머스' 카테고리의 다른 글
Lv1 숫자 문자열과 영단어 (0) | 2023.12.26 |
---|---|
Lv1 3진법 뒤집기 (0) | 2023.12.21 |
Lv1 문자열 다루기 기본 (0) | 2023.12.21 |
Lv0 특이한 정렬 (0) | 2023.07.13 |
Lv0 로그인 성공? (0) | 2023.07.04 |
https://school.programmers.co.kr/learn/courses/30/lessons/120907?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
quiz배열을 순차적을 돌면서 " = "을 기준으로 배열을 나눴다.
" + "의 포함 여부를 확인하고 계산한 값을 확인한다.
3항연산자를 이용해서 result배열에 결과값을 담아 return했다.
const solution = (quiz) => {
let result = [];
for(let item of quiz){
item = item.split(" = ");
if(item[0].includes(" + ")){
temp = item[0].split(" + ");
parseInt(item[1]) === parseInt(temp[0]) + parseInt(temp[1]) ? result.push("O") : result.push("X");
}
else{
temp = item[0].split(" - ");
parseInt(item[1]) === parseInt(temp[0]) - parseInt(temp[1]) ? result.push("O") : result.push("X");
}
}
return result;
};
console.log(solution(["3 - 4 = -3", "5 + 6 = 11"]));
console.log(solution(["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"]));
아래 코드는 다른 사람의 코드이다.
map함수를 이용해서 풀었는데, 여기서 새롭게 알게 된 첫번째 점은 구조 분해 할당을 이용하면 좀더 보기 편하게 바꿀 수 있다는 것이다.
두번째는 음수 계산을 3항 연산자를 활용해서 1, -1을 활용했다는 점에서 새롭게 배웠다.
세번째는 parseInt를 활용해 형변환을 했는데 +를 통해서 형변환을 할 수 있다는 것을 알게 되었다.
그리고 아래 코드 말고 다른 코드를 통해서 파이썬과 같이 eval()함수도 있다는 것을 알게 되었다.
function solution(quiz) {
var answer = [];
return quiz.map(t => {
const [calc, result] = t.split(' = ');
const sign = calc.includes('+') ? 1 : -1
const [a, b] = calc.split(sign === 1 ? ' + ' : ' - ');
return +a + (+b * sign) === +result ? 'O' : 'X'
});
}
'PS > 프로그래머스' 카테고리의 다른 글
Lv1 숫자 문자열과 영단어 (0) | 2023.12.26 |
---|---|
Lv1 3진법 뒤집기 (0) | 2023.12.21 |
Lv1 문자열 다루기 기본 (0) | 2023.12.21 |
Lv0 특이한 정렬 (0) | 2023.07.13 |
Lv0 로그인 성공? (0) | 2023.07.04 |