삐까냥의 파도타기
카카오 블라인드 채용 신입 공채 3차 코딩 테스트) 3번 문제 본문
문제 출처 : http://tech.kakao.com/2017/11/14/kakao-blind-recruitment-round-3/
정렬은 해봤지만 보통 숫자 정렬만 하잖아요?
음... 다른 언어로 구현한 코드를 보고싶네요.
전 도저히 생각이 나지 않아 객체로 구현했어요.
더 좋은 방법이 있으면 알려주세요!!!
2018년 3월 6일 public class kakao_3_3 { public static void main(String args[]) { solution(new String[]{"img12.png", "img10.png", "img02.png", "img1.png", "IMG01.GIF", "img2.JPG"}); solution(new String[]{"F-5 Freedom Fighter", "B-50 Superfortress", "A-10 Thunderbolt II", "F-14 Tomcat"}); }
static void solution(String[] fileList) { ArrayList<File> files = new ArrayList<>(); for (int i = 0; i < fileList.length; i++) { files.add(new File(fileList[i])); } //통일한 형식으로 정렬하기 Collections.sort(files, new FileComparatorByName());
ArrayList<String> sortedFileName = new ArrayList<>(); for (int i = 0; i < files.size(); i++) { sortedFileName.add(files.get(i).getRealName()); } System.out.println(sortedFileName); } } class File { String realName; String changedName;
File(String name) { realName = name;
//형식 통일 하기 - [HEAD] + [00000] int numberStartPosition = 0, taleStartPosition = name.length(); for (int j = 0; j < name.length(); j++ ) { int tempValue = (int)name.charAt(j); if (48 <= tempValue && tempValue <= 57) { if (numberStartPosition == 0) { numberStartPosition = j; } } else if (numberStartPosition > 0 && taleStartPosition == name.length()) { taleStartPosition = j; break; } }
String head = name.substring(0, numberStartPosition).toUpperCase(); String number = String.valueOf(Integer.valueOf(name.substring(numberStartPosition, taleStartPosition))); StringBuffer tempZero = new StringBuffer(); for (int i = 1; i <= 5 - number.length(); i++) { tempZero.append("0"); } changedName = head + tempZero.toString() + number; }
String getRealName() { return realName; }
String getChangedName() { return changedName; } } class FileComparatorByName implements Comparator<File> { @Override public int compare(File file1, File file2) { return file1.getChangedName().compareTo(file2.getChangedName()); } } |
'코딩 > 카카오 코딩 테스트' 카테고리의 다른 글
카카오 블라인드 채용 신입 공채 3차 코딩 테스트) 5번 문제 (0) | 2018.03.08 |
---|---|
카카오 블라인드 채용 신입 공채 3차 코딩 테스트) 4번 문제 (0) | 2018.03.07 |
카카오 블라인드 채용 신입 공채 3차 코딩 테스트) 2번 문제 (2) | 2018.03.06 |
카카오 블라인드 채용 신입 공채 3차 코딩 테스트) 1번 문제 (0) | 2018.03.05 |
카카오 블라인드 채용 3차 후기 (6) | 2017.10.29 |