문제(출처: https://www.acmicpc.net/problem/6324)
< URLs >
문제 풀이
split를 활용하여 protocl, host, prot, path를 구한다.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class _6324_ { // URLs
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(bf.readLine());
for (int i = 0; i < n; i++) {
String str = bf.readLine();
bw.write("URL #" + (i + 1) + "\n");
String protocol[] = str.split("://");
bw.write("Protocol = " + protocol[0] + "\n");
String temp[] = protocol[1].split("/");
String host[] = temp[0].split(":");
bw.write("Host = " + host[0] + "\n");
if (host.length > 1) {
bw.write("Port = " + host[1] + "\n");
} else {
bw.write("Port = <default>\n");
}
bw.write("Path = ");
if (temp.length > 1) {
for (int j = 1; j < temp.length; j++) {
bw.write(temp[j]);
if (j < temp.length - 1) {
bw.write("/");
}
}
if (protocol.length > 2) {
for (int j = 2; j < protocol.length; j++) {
bw.write("://" + protocol[j]);
}
}
} else {
bw.write("<default>");
}
if (i < n - 1) {
bw.write("\n\n");
}
}
bw.flush();
}
}
변수)
n : 테스트 케이스 수
str : URLs
protocol : '://' 기준으로 split
temp : '/' 기준으로 split
host : ':' 기준으로 split
테스트 케이스 수를 입력받는다. 테스트 케이스 수만큼 다음 과정을 반복한다.
1) URLs 입력
2) '://'를 기준으로 split한 후 protocol 배열에 저장한다. protocol 0번째 값을 protocol로 출력한다.
3) protocol 1번째 값을 '/' 기준으로 split 한 후 temp에 저장한다.
4) temp 0번째 값을 ':' 기준으로 split 한 후 host에 저장한다.
5) host 0번째 값을 host로 출력한다.
6) host 1번째 값이 있다면 port로 출력하고 값이 없다면 <default>를 출력한다.
7) temp의 길이가 1보다 크다면 Path 값이 존재하므로 temp 1번째부터 값을 출력한다. 출력 후 protocol 길이가 2보다 크다면 나머지도 출력한다. temp의 길이가 1보다 크지 않다면 <default>를 출력한다.
'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글
[Baekjoon] 6186_Best Grass (0) | 2024.09.06 |
---|---|
[Baekjoon] 9842_Prime (0) | 2024.09.05 |
[Baekjoon] 25193_곰곰이의 식단 관리 (2) | 2024.09.03 |
[Baekjoon] 9037_The candy war (1) | 2024.09.02 |
[Baekjoon] 2671_잠수함식별 (0) | 2024.08.30 |