문제 › 202

202. 난독화 텍스트 복원기

Medium 바이브코딩 Vibe ContestVibe DaconMCPNLPText Processing
문제 설명
[문제] 난독화된 한글 텍스트를 원래 텍스트로 되돌리는 MCP 서버를 구현한다(단순화 버전). 난독화란 글자를 자모로 쪼개거나 비슷한 모양 글자로 바꿔 검색/필터를 피하려는 변형을 말한다. 예를 들어 "정말"을 "ㅈㅓㅇㅁㅏㄹ"처럼 자모로 분리해 적는다. 이 서버는 다음 내장 사전(난독화 표기 -> 원본)을 사용한다: "ㅈㅓㅇㅁㅏㄹ" -> "정말" "ㅂㅏㄹ" -> "별" "조ㅎ아요" -> "좋아요" "ㄴㅏ" -> "나" 사전의 키(왼쪽 난독화 표기)들을 "패턴"이라 부른다. 서버 인스턴스 안에 통계(stats)를 유지하며, 해당 메소드를 호출할 때마다 카운터를 1씩 올린다. [구현할 함수] - analyze_obfuscation(text: str) -> int 텍스트 안에 사전의 패턴(키)이 몇 번 등장하는지 그 횟수를 반환한다. - restore_text(text: str) -> str 사전을 기반으로 패턴을 원본으로 단순 치환한 복원 텍스트를 반환한다. - detect_patterns(text: str) -> List[str] 텍스트에서 발견된 난독화 패턴들을 등장 순서대로 배열로 반환한다. 하나도 없으면 빈 배열 [] 을 반환한다. - get_stats() -> List[int] [복원(restore_text) 호출 횟수, 패턴 감지(detect_patterns) 호출 횟수] 정수 배열을 반환한다. 초기값은 [0, 0]. [입력/상태] 서버는 위 내장 사전과 호출 통계(stats)를 유지한다. [제약] - 패턴이 전혀 없는 텍스트는 analyze_obfuscation 0, detect_patterns [] 를 반환한다. - get_stats 초기값은 [0, 0]. [힌트] 문자열 안에서 특정 부분 문자열을 찾고 바꾸는 작업이다. 정규식 또는 단순 문자열 검색/치환을 쓰면 된다(Python: re/str.replace, C++: <regex>/std::string, Java: java.util.regex/String). [예시] (각 예시는 초기 빈 상태에서 시작) analyze_obfuscation("ㅈㅓㅇㅁㅏㄹ 별로") -> 1 restore_text("ㅈㅓㅇㅁㅏㄹ 별로") -> "정말 별로" detect_patterns("ㅈㅓㅇㅁㅏㄹ 조ㅎ아요") -> ["ㅈㅓㅇㅁㅏㄹ", "조ㅎ아요"] detect_patterns("없는단어") -> [] get_stats() -> [0, 0] # 호출 전
로그인하고 풀기 AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.