🌞Algorithm/🔥Baekjoon

[Baekjoon] 6324_URLs

뿌야._. 2024. 9. 4. 16:02
문제(출처: 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