본문 바로가기

개발중/Algorithm

LicensKeyFormatting

728x90
반응형
  • 하이픈 제거,
  • 소문자를 대문자로
  • 끝에서 4자리 끊기
  • String, StringBulider, StringBuffer 차이점과 장단점 이해하기
  • 생각 -> 한국말로 적고 이해 -> JAVA

 

 

일단, 이 문자열을 하이픈(-)을 제거 하자.

 

 

 

 

replacs () 함수는 (old , new)

old 문자열을 new로 바꿔주는 역활을 한다

"-" 문자를 "" 제거해주도록 만들었다.

 

 

 

 

 

 

toUpperCase() 함수는

소문자를 대문자로 모두 바꿔준다

 

 

 

 

 

 

 

이제 4자리를 끊어야 하는 일이 남았다.

전체 길이를 알아야 한다.

 

 

길이를 구한다

 

 

 

 

 

 

 

 

 

 

 

StringBuilder() 를 생성

 

 

 

 

 

 

 

 

 

 

 

 

문자를 버퍼에 하나씩 대입.

 

 

 

 

 

 

 

 

 

 

 

 

4부터 문자열 길이까지 돌리는데

4씩 증가하면서

 

 

 

 

 

 

 

 

 

 

 

 

길이에서 i번째를 뺀곳에다가 '-' 를 삽입하여 준다

 

 

 

 

 

 

 

 

 

 

 

 

[결 과]

 

 

 

 

 

package soobin;

public class LicensKeyFormatting {
	public static void main(String[] args) {
		String str = "8F3Z-2e-9-wabcdef";
		int k = 4;
		solve(str, k);
	}

	public static String solve(String str, int k) {
		
		String newStr= str.replace("-","");
		System.out.println("newStr : " + newStr);
		
		newStr = newStr.toUpperCase();
		System.out.println("newStr : " + newStr);
		
		int leng = newStr.length();
		
		StringBuilder sb = new StringBuilder();
		
		for( int i=0; i<leng; i++ ){
			sb.append(newStr.charAt(i));
		}
		
		for( int i=k; i<leng; i= i+k ){
			sb.insert(leng-i, '-');
		}
		
		System.out.println("sb : " + sb );
		
		return newStr;
	}
}

 

 

728x90
반응형

'개발중 > Algorithm' 카테고리의 다른 글

JewelsAndStones  (0) 2020.08.26
MeetingRoom2 응용 (정)  (0) 2020.08.26
MeetingRoom2  (0) 2020.08.25
Merge 알고리즘  (0) 2020.08.24
Daily Temperature  (0) 2020.08.23