삐까냥의 파도타기
카카오 블라인드 채용 신입 공채 3차 코딩 테스트) 1번 문제 본문
문제 출처 : http://tech.kakao.com/2017/11/14/kakao-blind-recruitment-round-3/
카카오 3차에 대한 안좋은 추억이 있어서 쳐다보지도 않았는데,
트라우마에 마주하려 합니다.
(그날은 유난히도 재수가 없던 날이었습니다.)
어쨌든,
정답률이 91%라고 했나요?
방금까지만 해도 해결 방법이 생각나지 않아서 어렵다고 생각했어요.
너무 어렵게만 생각해서 그랬나봐요.
(실제로 시험장에서 어렵게 풀었어요.)
근데, 그냥 모든 대답을 구한 다음에
원하는 대답만 뽑아내면 되는 간단한 문제였네요.
(코드를 더 다듬고 싶은데, 컴터가 막 버버벅버벅 거리네요.)
2018년 3월 5일 public class kakao3_1 { public static void main(String args[]) { solution(2, 4, 2, 1); solution(16, 16, 2, 1); solution(16, 16, 2, 2); }
//n진법, 구할 숫자 개수 t, m명, 내 순서 p번째 static void solution(int n, int t, int m, int p) { int lastNumber = m * (t - 1) + p;
StringBuffer totalAnswer = new StringBuffer(); totalAnswer.append(0); for (int i = 1; ; i++) { String nowAnswer = calResult(n, i); totalAnswer.append(nowAnswer); if (totalAnswer.length() > lastNumber) { break; } }
for(int i = 0; i < t; i++) { System.out.print(totalAnswer.toString().charAt(p - 1 + (m * i))); } System.out.println(); }
static String calResult(int n, int num) { StringBuffer result = new StringBuffer();
int resultNum = num; while (resultNum > 0) { int tempValue = resultNum; if (resultNum >= n) { tempValue = resultNum % n; } String tempResult = getValue(tempValue); result.append(tempResult); resultNum /= n; } return result.reverse().toString(); }
static String getValue(int i) { switch (i) { case 10 : return "A";
case 11 : return "B";
case 12 : return "C";
case 13 : return "D";
case 14 : return "E";
case 15 : return "F";
default : return String.valueOf(i); } } } |
'코딩 > 카카오 코딩 테스트' 카테고리의 다른 글
카카오 블라인드 채용 신입 공채 3차 코딩 테스트) 3번 문제 (0) | 2018.03.06 |
---|---|
카카오 블라인드 채용 신입 공채 3차 코딩 테스트) 2번 문제 (2) | 2018.03.06 |
카카오 블라인드 채용 3차 후기 (6) | 2017.10.29 |
카카오 블라인드 채용 3차 테스트 안내 메일 (2) | 2017.10.20 |
카카오 블라인드 채용 2차 테스트 후기 (4) | 2017.10.14 |