• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

문제에 대한 이해

21.06.25 14:44 작성 조회수 180

1

문제를 제가 잘못이해한건가요?ㅠ 처음 -가 나오기 전에 그룹은 그냥 그대로 나오고 그 다음 그룹부터 K개만큼 그룹화하는 걸로 이해했거든요..

예를들어

INPUT : s = "8F3Z-2e-9-w", k = 2

OUTPUT : "8F3Z-2E-9W"

이런식으로 나와야되는게 아닐까요?

그래서 

public static void main(String[] args) {

String str = "8F3Z-2e-9-wabcdef";

// String str = "8F3Z-2e-9-w";

// String str = "8-5g-3-J";

int k =2;

System.out.println(solve(str, k));

}

public static String solve(String str, int k ) {

//처음 대쉬가 나오는 인덱스

int index = str.indexOf("-");

//1. - del

String newStr= str.replace("-", "");

System.out.println("1: "+newStr);

//2. upper

newStr= newStr.toUpperCase();

System.out.println("2: "+newStr);

//3. k개로 파싱하기, 그리고 - 넣기

StringBuilder sb = new StringBuilder(newStr);

System.out.println("3: "+newStr);

// "8F3Z2E9W"

int len = sb.length();

for(int i=k; i<len; i=i+k) {

if(len-i  < index) {

break;

}

sb.insert(len-i, '-');

}

return sb.toString();

}

이런식으로 소스를 수정해봤습니다.

답변 1

답변을 작성해보세요.

0

안녕하세요. 지성조님~

이 문제는 지문에 보면

첫 번째 그룹을 제외하고 그룹이 정확히 k로 문자열을 형식화(Formatting)야 합니다.

번째 그룹은 더 짧을 수 있지만 여전히 적어도 하나의 문자를 포함해야합니다

=> 

그래서 결론은 첫번째 그룹은 k개로 자르는것에서 제외입니다.

하지만 한개 이상의 문자는 포함해야됩니다.

아래 작성하신 부분은 필요없는 문제입니다.

if(len-i  < index) {

break;

}

좋은 질문 주셔서 감사합니다.~