내일배움캠프/TIL

JS 문법 종합 1주차 240813

leswing 2024. 8. 13. 20:34

1주차 숙제를 하는데

 

문제 설명

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.

예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.

 

제한 사항

  • 문자열 s의 길이 : 50 이하의 자연수
  • 문자열 s는 알파벳으로만 이루어져 있습니다.

해당 구문을 푸는데 어떤 방식을 쓸까 고민하다가.

내가 아는 문자열 확인 방식중에 해당 문자가 뭔지 확인할 수 있나? 를 생각하다가

split을 쓰기로 생각했다.

 

split을 쓰면 해당 문자열에서 해당 문자 수 만큼 배열을 나누고 배열의 갯수가 문자의 수 +1이라고 생각해서 진행했다

 

일단 VScode에서 예시로 할 문자열과 문자열을 'p' , 'y', 'P', 'Y' 로 나눈뒤

let s = 'pSy'

let a = s.split('p');
let b = s.split('P');
let c = s.split('y');
let d = s.split('Y');

각 배열의 길이를 더해 console.log로 띄워봤다

let e = a.length + b.length;
let f = c.length + d.length;

console.log(e)
console.log(f)

둘 다 3으로 나와서 아 정상적으로 작동하는구나 생각해서 같은 경우는 두 수를 뺐을 때가 0이니까

let g = e - f

console.log(g)
if (g = 0) {
    console.log('정답이야!')
    var answer = true
} else {
    console.log('같지 않아!')
    var answer = false
};

라고 쓰니까  '같지 않아' 가 출력되었다. (s = 'pSy')

 

??  뭐지 라고 생각하다가

 

연산자 문제인가? 하면서 if 조건 안쪽을 ===로 바꾸어 보니까 제대로 작동했다

 

이후 몇개의 문자열을 넣어 검사한 후 제출한 뒤

 

튜터님한테 그냥 궁금해서 질문하러 갔는데 =는 값을 지정할 때 말고는 쓰지 않는다고...

 

앞으로는 조건문 안쪽에 연산자로 잘 넣어야겠다

'내일배움캠프 > TIL' 카테고리의 다른 글

JS 문법 종합 3주차 240816  (0) 2024.08.16
JS 문법 종합 2주차 240814  (0) 2024.08.14
[TIL] 2024/08/09  (0) 2024.08.09
[TIL] 2024/08/08  (0) 2024.08.08
[TIL] 2024/08/07  (0) 2024.08.07