만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

URL 파싱

면접 대비

시간 제한1초메모리 제한128 MB

요약
각 URL을 프로토콜, 호스트, 선택적 포트, 선택적 경로로 나누고, 없는 값은 <default>로 출력한다.
난이도

쉬움10점 중 3점

유형
문자열, 구현, 시뮬레이션, 완전 탐색
정답자
아직 제출이 없습니다

문제

1990년대 초에 월드 와이드 웹(WWW)이 발명되었습니다. 오늘날 대부분의 사람들은 WWW를 웹 브라우저로 읽는 (예쁘거나 그렇지 않은) HTML 페이지들의 모음 정도로 생각합니다. 하지만 당시 WWW 설계의 주된 의도 중 하나는 이미 존재하던 여러 통신 프로토콜을 하나로 통합하는 것이었습니다.

그 시절에도(그리고 지금도) 인터넷의 정보는 FTP, HTTP, 이메일, 뉴스, Gopher 등 매우 다양한 경로로 제공되었습니다. WWW 덕분에 이 서비스들은 이제 모두 URL(Uniform Resource Locator, 통합 자원 위치 지정자)을 통해 동일한 방식으로 지정할 수 있게 되었습니다. 이 문제에서는 다음과 같은 단순화된 URL 문법을 다룹니다.

<protocol>://<host>[:<port>][/<path>]

대괄호 [ ]로 둘러싸인 부분은 선택 사항이며, 나타날 수도 있고 나타나지 않을 수도 있습니다. URL의 예시는 다음과 같습니다.

http://www.informatik.uni-ulm.de/acm
ftp://acm.baylor.edu:1234/pub/staff/mr-p
gopher://veryold.edu

각 구성 요소의 규칙은 다음과 같습니다.

  • <protocol>은 항상 http, ftp, gopher 중 하나입니다.
  • <host>는 알파벳(a-z, A-Z), 숫자(0-9), 마침표(.), 붙임표(-), 밑줄(_)로 이루어진 문자열입니다.
  • <port>는 65536보다 작은 양의 정수입니다.
  • <path>는 공백을 포함하지 않는 문자열입니다.

주어진 URL을 각 구성 요소로 분해하는 프로그램을 작성하세요.

Gopher는 오늘날 WWW의 조상 격인 서비스로, 지금은 거의 사라졌지만 WWW가 발명될 무렵에는 상당히 중요했습니다.

입력

첫째 줄에 URL의 개수를 나타내는 정수 nn이 주어집니다. 이어지는 nn개의 줄에는 위에서 설명한 형식의 URL이 한 줄에 하나씩 주어집니다. 각 URL의 길이는 최대 60자입니다.

출력

각 URL에 대해 먼저 URL #k 형태로 URL 번호를 출력합니다(첫 번째 URL은 URL #1). 이어서 네 줄에 걸쳐 프로토콜, 호스트, 포트, 경로를 각각 Protocol, Host, Port, Path 라벨과 함께 출력합니다. 포트나 경로가 URL에 없으면 그 값 대신 <default>를 출력합니다.

라벨은 왼쪽 정렬로 8칸 폭을 채운 뒤 =로 값과 이어 붙입니다. 연속한 두 URL의 출력 블록 사이에는 빈 줄을 하나 넣어 구분하며, 출력의 맨 끝에는 줄바꿈만 있고 빈 줄을 추가로 넣지 않습니다. 정확한 형식은 아래 예시를 참고하세요.

예제3

  1. 예제 1

    입력
    3
    ftp://acm.baylor.edu:1234/pub/staff/mr-p
    http://www.informatik.uni-ulm.de/acm
    gopher://veryold.edu
    
    예상 출력
    URL #1
    Protocol = ftp
    Host     = acm.baylor.edu
    Port     = 1234
    Path     = pub/staff/mr-p
    
    URL #2
    Protocol = http
    Host     = www.informatik.uni-ulm.de
    Port     = <default>
    Path     = acm
    
    URL #3
    Protocol = gopher
    Host     = veryold.edu
    Port     = <default>
    Path     = <default>
    
  2. 예제 2

    입력
    1
    http://www.example.com:8080/index.html
    
    예상 출력
    URL #1
    Protocol = http
    Host     = www.example.com
    Port     = 8080
    Path     = index.html
    
  3. 예제 3

    입력
    1
    gopher://host.edu
    
    예상 출력
    URL #1
    Protocol = gopher
    Host     = host.edu
    Port     = <default>
    Path     = <default>