시간&메모리 제한
문제
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Back_3107 {
static String [] answer = {"0000","0000","0000","0000","0000","0000","0000","0000"};
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb;
String ip = br.readLine();
String[] splits = ip.split("::");
//::가
if(splits.length==1) {
String[] split = splits[0].split(":");
for (int i = 0; i < split.length; i++) {
if(split[i].length()==4) {
answer[i]=split[i];
}else {
sb = new StringBuilder();
for (int j = 0; j < 4-split[i].length(); j++) {
sb.append(0);
}
sb.append(split[i]);
answer[i]=sb.toString();
}
}
}else {
String[] split1;
String[] split2;
// 앞부분 처리
if(!splits[0].equals("")) {
split1 = splits[0].split(":");
for (int i = 0; i < split1.length; i++) {
if(split1[i].length()==4) {
answer[i]=split1[i];
}else {
sb = new StringBuilder();
for (int j = 0; j < 4-split1[i].length(); j++) {
sb.append(0);
}
sb.append(split1[i]);
answer[i]=sb.toString();
}
}
}
// 뒷부분 처리
if(!splits[1].equals("")) {
split2 = splits[1].split(":");
for (int i = 0; i < split2.length; i++) {
if(split2[i].length()==4) {
answer[8-split2.length+i]=split2[i];
}else {
sb = new StringBuilder();
for (int j = 0; j < 4-split2[i].length(); j++) {
sb.append(0);
}
sb.append(split2[i]);
answer[8-split2.length+i]=sb.toString();
}
}
}
}
sb = new StringBuilder();
for (int i = 0; i < 7; i++) {
sb.append(answer[i]+":");
}
sb.append(answer[7]);
System.out.println(sb);
}
}
※ 내 생각
이 문제는 문자열을 이용하는 문제입니다.
먼저 이 문제를 해결하기 위해서 :: 를 구분하는 작업을 먼저 했습니다.
:: 가 없는 경우는 빈 공간만 채우는 작업을 진행하면 됩니다.
:: 가 있는 경우에는 ::를 기준으로 앞과 뒤를 확인 할 필요가 있습니다.
:: 의 앞에서 : 로 구분을 하여 그 길이 만큼 answer에 채워줍니다.
마찬가지로 뒷 부분도 채워줍니다.
가운데는 미리 선언을 했기 때문에 채울 필요가 없습니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_9461 파도반 수열(자바) / DP (0) | 2021.09.30 |
---|---|
백준_5635 생일(자바) / 정렬, 구현 (0) | 2021.09.28 |
백준_1292 쉽게 푸는 문제(자바) / 구현 (0) | 2021.09.24 |
백준 10610 30 (자바) / 문자열 , 그리디 알고리즘 (0) | 2021.09.23 |
백준_1966 프린터 큐(자바) / 구현 (0) | 2021.09.15 |