CodeWars 여든 일곱 번째 문제
Updated:
Range Extraction
public static String rangeExtraction(int[] arr) {
List<String> rangeList = new ArrayList<String>();
int start = arr[0];
int beforeNumber = arr[0];
for(int i = 1; i < arr.length; i++) {
if( beforeNumber +1 == arr[i]) {
beforeNumber = arr[i];
} else {
addRangeList(rangeList, start, beforeNumber);
start = arr[i];
beforeNumber = arr[i];
}
}
addRangeList(rangeList, start, beforeNumber);
return String.join(",", rangeList);
}
public static void addRangeList(List<String> rangeList, int start, int beforeNumber) {
if(start == beforeNumber) {
rangeList.add(String.valueOf(start));
} else if(start+1 == beforeNumber){
rangeList.add(String.valueOf(start));
rangeList.add(String.valueOf(beforeNumber));
} else {
rangeList.add(start + "-" + beforeNumber);
}
}
- 숫자들의 연속을 하이픈(-)으로 묶어서 출력하는 문제였다.
- 4kuy 치고는 어렵지 않았다.
- Best 코드들도 차이는 없었다.