{}연습장
대시보드학습스킬 경로문제모의고사라이브 코테복습데이터
문제 목록〉스택〉출입 로그 대칭 사원번호 검사← 이전다음 →
#021 · 스택쉬움양끝 포인터,문자 필터링

출입 로그 대칭 사원번호 검사

문제

사옥 출입 게이트는 카드가 찍힐 때마다 로그를 한 줄 남깁니다. 로그에는 사원번호 문자들 사이에 게이트가 삽입한 공백과 기호(-, :, /, #, . 등)가 불규칙하게 섞여 들어갑니다.

보안팀은 로그에서 영문자와 숫자만 남겼을 때 앞뒤가 대칭인 사원번호를 쓰는 계정을 점검 대상으로 분류합니다. 이때 영문자의 대소문자는 구분하지 않습니다.

로그 한 줄 log가 주어질 때 점검 대상이면 true, 아니면 false를 반환하는 solution(log) 함수를 작성하세요. 영문자와 숫자가 하나도 없는 로그는 대칭으로 봅니다.

예시

log="A7-b :: B7a"    → true
  영문자와 숫자만 남기면 "A7bB7a"이고, 소문자로 맞추면 "a7bb7a"라 앞뒤가 같다.
 
log="K9 / 1x-2"      → false
  남는 문자는 "k91x2"이고 뒤에서 읽으면 "2x19k"라 다르다.
 
log="gate#1 . 1ETAG" → true
  "gate11etag"는 앞뒤가 같다.
 
log="###"            → true
  남는 문자가 없으므로 대칭으로 본다.
 
log="7g"             → false

제약 조건

  • 1 ≤ log.length ≤ 200,000
  • log는 출력 가능한 ASCII 문자로만 이루어집니다
  • 영문자는 대소문자를 같은 문자로 취급하고, 숫자는 그대로 비교합니다

시간 복잡도 목표: O(N)

테스트 케이스

예시 1: 기호를 걷어내면 "a7bb7a"
입력: log = "A7-b :: B7a"
출력: true
예시 2: "k91x2"는 대칭이 아님
입력: log = "K9 / 1x-2"
출력: false
예시 3: 대소문자를 구분하지 않는 긴 로그
입력: log = "gate#1 . 1ETAG"
출력: true
예시 4: 남는 문자가 없는 로그
입력: log = "###"
출력: true
예시 5: 두 글자가 서로 다름
입력: log = "7g"
출력: false
엣지: 길이가 짝수인 대칭
입력: log = "T-4:4t"
출력: true
solution.ts
에디터 로딩 중…

▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.