Leetcode Java Base 7

업데이트:

문제

Link

코드

class Solution {

  public String convertToBase7(int num) {
    if (num == 0) {
      return "0";
    } else {
      StringBuilder sb = new StringBuilder();
      String sign = "";
      if (num < 0) {
        num *= -1;
        sign = "-";
      }
      while (num > 0) {
        sb.append(num % 7);
        num /= 7;
      }
      return sb.append(sign).reverse().toString();
    }
  }

}

결과

Link

설명

  1. num을 7진수로 변환한 문자열로 반환하는 문제이다.

  2. num이 0인 경우 변환할 필요가 없으므로, 그대로 0을 문자열로 반환한다.

  3. 문제 풀이에 필요한 변수를 정의한다.
    • sb는 num을 7진수로 변환한 문자열을 동적으로 넣을 변수로, 효율적인 메모리 사용을 위해 StringBuilder를 사용한다.
    • sign은 num이 음수일 경우 부호를 넣을 변수로, 빈 문자열로 초기화한다.
  4. num이 0보다 작은 음수인 경우, sign에 음수 기호인 “-“을 넣어주고 num에 -1을 곱해서 양수로 만들어준다.

  5. num이 0보다 클 때 까지 반복하여 아래를 수행한다.
    • num을 7로 나눈 나머지 값을 sb에 넣어주고, num을 7로 나눠준다.
  6. 반복이 완료되면 부호를 저장한 sign을 이어주고 sb에 저장한 문자를 앞뒤로 반전시킨 문자열로 변환하여 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기