해결된 질문
작성
·
205
1
public static int[] plusOne(int[] digits) {
StringBuilder sb = new StringBuilder();
for(int i=0;i<digits.length;i++) { sb.append(digits[i]+"");
}
int result = Integer.parseInt(sb.toString())+1;
char[] ca = (result+"").toCharArray();
int[] res = new int[ca.length];
for(int i=0;i<ca.length;i++) {
res[i] = Integer.parseInt(ca[i]+"");
}
return res;
}
생각의 흐름대로 짜보았습니다.
답변 2
0
이 스타일로 문제를 풀게되면 아래와 같이 런타임 에러가
발생합니다. 아무래도 파싱하는과정에서 많은시간을
소요하는것으로 보여, 본 강의 스타일대로 접근하는게
맞겠죠? 오히려 이렇게 저렇게 파싱하는게
가독성에 안좋아 보여서 개인적인 의견이자 질문드립니다.
화면 캡쳐 아래에 해놓았습니다.
0
좋습니다.
아래처럼 푸셨는데요, 3번 알고리즘 적용하기를 좋은 생각을 하셨네요
프로그램밍도 언어입니다. 그래서 저도 아래 1,2,3번 주석단거처럼
적용하면 어떠한 문제도 다 풀수 있습니다. 그리고 실전 인터뷰에서는 문제해결능력을 더 봅니다.
아래 처럼 접근하시면 실전 면접에서도 좋은 결과가 당연한 거죠~~~~~~~~~
//1. 담을 저장 공간 만들기
StringBuilder sb = new StringBuilder();
//2. for문또는 while문 돌리기 적용
for (int i = 0; i < digits.length; i++) {
sb.append(digits[i] + "");
}
//3. 알고리즘 적용하기
// 3-1 Integer.parseInt 사용해서 String을 int로 만들어주고
// 3-2 char로 변환
// 3-3 int[]로 다시변환
int result = Integer.parseInt(sb.toString()) + 1;
char[] ca = (result + "").toCharArray();
int[] res = new int[ca.length];
for (int i = 0; i < ca.length; i++) {
res[i] = Integer.parseInt(ca[i] + "");
}
return res;