-
[문제풀이 후기] 백준 #31495 - 그게 무슨 코드니..문제풀이/Baekjoon 2026. 1. 23. 12:30
https://www.acmicpc.net/problem/31495
기본 상위 코드
import { readFileSync } from "fs"; const input = readFileSync(0).toString().trim();첫 번째 시도 (결과 : 실패)
접근 방식
1. regex 사용
2. regex 에 부합하는 경우 " 를 제거하고 출력input.match(/\"[a-zA-Z\s]*\"/g) ? console.log(input.split('"').join("")) : console.log("CE");실패 원인
: " 가 중가에 있을 수도 있음
( 반례 : "", a"b"c )
두 번째 시도 (결과 : 성공)
접근 방식
1. " 보유 개수 체크
2. " 로 split 한 뒤 '' 이 아닌 요소 개수 체크
3. " 가 2개 && '' 이 아닌 요소 개수가 1개여야 함const quoteSplittedArray = input.split('"'); const hasQuote = input.match(/"/g) || []; const onlyText = quoteSplittedArray.filter(Boolean); if (hasQuote.length === 2 && onlyText.length === 1) { console.log(quoteSplittedArray.join("")); } else { console.log("CE"); }
세 번째 시도 (결과 : 성공)
접근 방식
1. 문제 조건 1
: " 의 개수는 전체에서 2개 이하
=> " 는 반드시 시작과 끝에만 존재해야 함
2. 문제 조건 2
: 반드시 문자열은 " 안에 존재해야 함
=> 문자열의 길이는 반드시 2보다 크다input.length > 2 && input.startsWith('"') && input.endsWith('"') ? console.log(input.slice(1, -1)) : console.log("CE");후기
regex 를 떠올려서 쉬울 줄 알았는데... 역시 정답률이 낮은 데는 이유가 있었구나..
문제 조건만 잘 봤어도 이렇게 오래 걸리지는 않았을텐데 아쉽다.'문제풀이 > Baekjoon' 카테고리의 다른 글
[문제풀이 후기] 백준 #28295 - 체육은 코딩과목 입니다 (0) 2026.02.11 [문제풀이 후기] 백준 #28431 - 양말 짝 맞추기 (0) 2026.02.11 [문제풀이 후기] 백준 #14935 - FA (0) 2026.01.22 [문제풀이 후기] 백준 #11943 - 파일 옮기기 (0) 2026.01.09 [문제풀이 후기] 백준 #4299 - AFC 윔블던 (0) 2026.01.05