TomHoon
20
2022-06-23 17:44:00
0
128

자바) String 알고리즘 문제


공백이 있을 경우 '%20' 으로 변환하여 출력하는 문제입니다.

첫번째 코드는 제가 작성한 것 입니다.

두번째 코드는 해답입니다. 


제가 쓴 코드라서 그런지 

더 깔끔해보이거든요..?


 해답과 비교했을 때

시간 복잡도는 O(N)으로 똑같은 것 같은데 

어떤 점이 해답이 좀 더 우세할까요? 

궁금합니다 고수님들!



package CodingTest;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
//내가 작성
public class String_CT1_3 {
	static String chgUrl(String s){
		String sb = new String();
		for(int i=0; i<s.length(); i++){
			if(s.charAt(i)==' ')
				sb += "%20";
			else
				sb +=(s.charAt(i));
		}
		return sb;
	}
	
}




package CodingTest;
//해답
public class CT1_3_Answer {
	void replaceSpaces(char[] str, int trueLength){
		int spaceCount = 0, index, i = 0;
		for(i=0; i< trueLength; i++){
			if(str[i] == ' '){
				spaceCount++;
			}
		}
		index = trueLength + spaceCount * 2;
		if(trueLength<str.length)
			str[trueLength] = '\0';
		for(i=trueLength-1; i>=0; i--){
			if(str[i] == ' '){
				str[index-1] = '0';
				str[index-2] = '2';
				str[index-3] = '%';
			}else{
				str[index -1] = str[i];
				index--;
			}
		}
	}
}


0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.