티스토리 뷰
728x90
코딩테스트 연습 - 큰 수 만들기
programmers.co.kr
풀이
1. 1231234라는 문자열에서 숫자 3개를 제거한다고 가정했을 때 반환해야 하는 문자열 길이는 str.length() - k이다
ex) 1231234에서 3개 제거하면 무조건 4자리 숫자를 반환한다.
2. for문 범위를 문자열 길이 -k까지 돌려준다
3. 두 번째 for 문은 가장 큰 값을 찾기 위한 for문
4 만약 가장 큰 값을 찾았다면 큰 값이 위치한 index+1부터 탐색을 해준다.
5. answer+=max 해서 String을 반환하면 오류 난다 StringBuilder로 해결하자
@Test
public void 정답() {
System.out.println(solution("1231234", 3));
}
public String solution(String number, int k) {
StringBuilder answer = new StringBuilder();
int max = 0;
int index = 0;
for (int i = 0; i < number.length() - k; i++) {
max = 0;
for (int j = index; j <= i + k; j++) {
int temp = number.charAt(j) - '0';
if (max < temp) {
max = temp;
index = j + 1;
}
}
answer.append(max);
}
return answer.toString();
}
'알고리즘 - Java' 카테고리의 다른 글
[Programmers] 예상 대진표 - Java (0) | 2022.03.31 |
---|---|
[Programmers] 피로도 - Java (0) | 2022.03.31 |
[Programmers] 뉴스 클러스터링 - Java (0) | 2022.03.30 |
[Programmers] 베스트 앨범-Java (0) | 2022.03.20 |
[Programmers] 영어 끝말잇기-Java (0) | 2022.03.18 |
댓글