문제설명 : 문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
- 풀이(1) : str1("ab6CDE443fgh22iJKlmn1o"), str2("6CD"), return "1"
- 풀이(2) : str1("ab6CDE443fgh22iJKlmn1o"), str2("63ad"), return "2"
function solution(str1, str2) {
let answer = ""
if(str1.includes(str2)) {
answer = 1;
} else {
answer = 2;
}
return answer;
}
문제의 핵심은 includes()
메소드에 대한 부분같다. str1에 str2가 있으면 1을, 없으면 2를 값으로 주는 문제였다.
물론 이 코드를 더 간결하게 만든 사람이 있을 것이다.
function solution(str1, str2) {
return str1.includes(str2) ? 1 : 2;
}
조건문을 사용하지 않고 "?
"로 해결했다. 여기서 "?
"란 무엇일까?
기존의 Javascript에서 조건문을 작성했던 구문은 아래와 같았다.
if(조건) {
return A;
} else {
return B;
};
조건부 삼항 연산자 물음표(?)는 이를 간결하게 (조건)
을 앞으로 빼고, return 을 다음과 같이 기록한다.
조건 ? A : B;
if(str1.includes(str2)) {
answer = 1;
} else {
answer = 2;
}
str1.includes(str2) ? 1:2
코드 간결성의 발전은 대단하다. 조금씩 오늘도 레벨을 업(up)시켜본다.