728x90
📌 문제
문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.
- 1 ≤ str1의 길이 ≤ 100
- 1 ≤ str2의 길이 ≤ 100
- 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.
📌 풀이
str2가 있는지 없는지 어떻게 알아봐야 하는지 멘붕이었는데 매우 적절한 includes()라는 메서드가 있었다!
이 메서드는 배열이 특정 요소를 포함하고 있는지를 불리안 값으로 판별해준다.
해서 만약 str1이 str2를 포함하고 있다면 (true) 1을 리턴하고 그렇지 않다면 2를 리턴하는 짧은 코드를 완성할 수 있었다.
그런데 includes를 모른다면 내가 아는 매서드에서는 무엇을 활용해서 풀 수 있었을까...
아래와 같이 split을 사용할 수 있었다.
str1 안에 str2가 있다면, str2로 나누었을 때 str2 앞/뒤로 나누어져 2개의 문자열이 생성되어 길이가 2가 된다. (str2가 1번 있다면)
없다면 나눠지지 않았기 때문에 1이 되는데, str2가 몇 번 반복되는지 모르니 더 확실한 나눠지지 않은 경우로 코드를 짜면 된다.
즉 나눴을 때 길이가 1이라면 없으니 2를 리턴하고, 1이 아니라면 1을 리턴하게 하면 된다.
이 과정에서 삼항 연산자도 배웠다.
if문을 남용하는 것보다 훨씬 간단한 식 같아서 앞으로 자주 사용해야겠다.
📌 코드
function solution(str1, str2) {
return str1.split(str2).length == 1 ? 2 : 1
}
function solution(str1, str2) {
if (str1.includes(str2)) {
return 1
} else {
return 2
}
}
728x90
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 입문 : 대문자와 소문자 (0) | 2023.03.24 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 입문 : 개미군단 (0) | 2023.03.24 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 제곱수 판별하기 (0) | 2023.03.23 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 숨어있는 숫자의 덧셈 (1) (0) | 2023.03.22 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 자릿수 더하기 (0) | 2023.03.22 |