코린이의 소소한 공부노트

[LeetCode/Easy] 482. License Key Formatting 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 482. License Key Formatting

무지맘 2023. 5. 19. 16:06

1. Input

1) String s

2) int k

 

2. Output

1) sn개의 그룹으로 나누고, 그룹 사이에는 ‘-’1개씩 넣은 문자열을 반환

- 이때 첫 번째 그룹을 제외한 나머지 그룹은 반드시 1개 이상 k개 이하의 문자가 들어가야 한다.

 

3. Constraint

1) 1 <= s.length <= 10^5

2) 1 <= k <= 10^4

3) s는 영어 소문자와 ‘-’로 이루어져 있다.

 

4. Example

Input: s = "5F3Z-2e-9-w", k = 4 -> Output: "5F3Z-2E9W"

Input: s = "2-5g-3-J", k = 2 -> Output: "2-5G-3J"

 

5. Code

1) 첫 코드(2023/05/19)

class Solution {
    public String licenseKeyFormatting(String s, int k) {
        StringBuilder sb = new StringBuilder();
        int count = 0;
        for(int i=s.length()-1 ; i>=0 ; i--){
            char c = Character.toUpperCase(s.charAt(i));
            if(c!='-'){
                sb.append(c);
                count++;
            }
            if(count==k){
                sb.append('-');
                count = 0;
            }
        }
        if(sb.length()==0)
            return "";
        if(sb.charAt(sb.length()-1)=='-')
            sb = sb.deleteCharAt(sb.length()-1);
        return sb.reverse().toString();
    }
}