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가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.