발행일

[99클럽] 99클럽 코테 스터디 1일차 TIL + 문자열

[99클럽] 99클럽 코테 스터디 1일차 TIL + 문자열

이 글은 네이버 블로그에 2025년 1월 13일에 올렸던 것을 그대로 옮겨온 것입니다.

  • 오늘의 학습 키워드

  • 공부한 내용 본인의 언어로 정리하기

  • 오늘의 회고

  • 어떤 문제가 있었고, 나는 어떤 시도를 했는지

  • 어떻게 해결했는지

  • 무엇을 새롭게 알았는지

  • 내일 학습할 것은 무엇인지

자바스크립트 문자열(String)에 대해 알아보자

자바스크립트에서 문자열(String)은 프로그래밍에서 가장 기본적이고 중요한 데이터 타입 중 하나입니다. 이번 글에서는 문자열이 무엇인지, 어떻게 사용하는지, 그리고 자바스크립트에서 문자열을 다루는 다양한 방법에 대해 알아보겠습니다.


문자열(String) 정의

문자열은 문자(character)들의 집합으로, 큰따옴표("), 작은따옴표('), 또는 백틱(```)으로 감싸서 표현됩니다.


문자열의 특성

1. 불변성 (Immutability)

문자열은 불변(immutable) 데이터 타입입니다. 즉, 한 번 생성된 문자열은 수정할 수 없습니다. 대신 문자열을 변경하려면 새로운 문자열을 만들어야 합니다.


문자열 다루기

1. 문자열 길이 확인

문자열의 길이는 .length 속성을 사용합니다.

2. 문자열 결합

문자열을 결합하려면 + 연산자 또는 concat 메서드를 사용할 수 있습니다.

3. 문자열 내부 탐색

  • 특정 문자나 문자열이 있는지 확인하려면 indexOf 또는 includes를 사용합니다.

4. 문자열 자르기

문자열의 특정 부분을 추출하려면 slice, substring, 또는 substr 메서드를 사용할 수 있습니다.

5. 대소문자 변환

  • 문자열을 모두 소문자 또는 대문자로 변환하려면 toLowerCase 또는 toUpperCase를 사용합니다.

템플릿 리터럴

템플릿 리터럴(Template Literal)은 문자열을 표현하는 현대적인 방식입니다. 백틱(\``)으로 문자열을 감싸며, ${}`를 사용해 변수나 표현식을 쉽게 포함할 수 있습니다.


문자열을 다룰 때 주의점

  1. 불필요한 문자열 연산 줄이기
  • 문자열을 자주 변경해야 한다면, 문자열 대신 배열이나 다른 데이터 구조를 고려하세요.
  1. Unicode와 이모지 처리
  • 문자열은 유니코드로 인코딩되기 때문에, 이모지와 같은 특수 문자는 예상과 다르게 처리될 수 있습니다.
function solution(s) {
    s = s.toLowerCase(); // 대소문자를 구별하지 않기 위해 모두 소문자로 변환
    const pCount = (s.match(/p/g) || []).length; // 'p'의 개수를 셈
    const yCount = (s.match(/y/g) || []).length; // 'y'의 개수를 셈
    return pCount === yCount; // 두 개수가 같으면 true, 다르면 false 반환
}

https://school.programmers.co.kr/learn/courses/30/lessons/12916

  • 코딩테스트 연습 - 문자열 내 p와 y의 개수 — 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예 s ans...

비기너: 문자열 내 p와 y의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/12916

미들러: 암기왕 https://www.acmicpc.net/problem/2776

챌린저: 타임머신 https://www.acmicpc.net/problem/11657

필수 해시태그: #99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL

image