• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

이렇게 하는건 어떤가요?

20.02.13 22:06 작성 조회수 145

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

Sung Rak님의 프로필

Sung Rak

2021.03.12

이 스타일로 문제를 풀게되면 아래와 같이 런타임 에러가 

발생합니다. 아무래도 파싱하는과정에서 많은시간을

소요하는것으로 보여, 본 강의 스타일대로 접근하는게

맞겠죠? 오히려 이렇게 저렇게 파싱하는게 

가독성에 안좋아 보여서 개인적인 의견이자 질문드립니다.

화면 캡쳐 아래에 해놓았습니다.

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;