문제 › 066

066. URL 단축기

Medium 바이브코딩 MCPWebUtility
문제 설명
[문제] URL 단축기 MCP 서버를 구현하시오. 긴 URL을 짧은 코드가 붙은 URL로 바꿔 주고, 짧은 URL을 다시 원본으로 복원한다. 또 짧은 URL이 몇 번 조회(접근)됐는지 통계를 보관한다. [구현할 함수] - shorten_url(long_url: str) -> str long_url에 대한 새 짧은 코드를 발행하고 짧은 URL 문자열을 반환한다. 형식은 "https://short.url/short{N}" 이며 N은 1부터 1씩 증가한다(첫 발행은 short1, 다음은 short2 ...). - expand_url(short_url: str) -> str 짧은 URL을 원본 URL로 복원해 반환한다. 등록된 적 없는 짧은 URL이면 빈 문자열 ""을 반환한다. - get_stats(short_url: str) -> int 그 짧은 URL의 접근 횟수를 반환한다. 등록된 적 없는 짧은 URL이면 -1을 반환한다. [입력·상태] 서버는 원본 URL과 짧은 URL 사이의 양방향 매핑, 그리고 짧은 URL별 접근 통계를 상태로 유지한다. 또한 1부터 증가하는 발행 카운터를 유지한다. 초기 상태는 비어 있다. [제약] - 짧은 코드는 발행 순서대로 short1, short2, short3 ... 형식이다. - 없는 짧은 URL을 expand하면 "", get_stats하면 -1이다. [예시] shorten_url("https://www.example.com") -> "https://short.url/short1" shorten_url("https://www.example.com"); expand_url("https://short.url/short1") -> "https://www.example.com" shorten_url(url1) -> "https://short.url/short1"; shorten_url(url2) -> "https://short.url/short2" expand_url("https://short.url/없음") -> "" # 미등록 (경계) get_stats("https://short.url/없음") -> -1 # 미등록 (경계)
로그인하고 풀기 AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.