hoon's bLog

Java 프로그래머스 자연수 뒤집어 배열로 만들기 자바 본문

코딩테스트/프로그래머스

Java 프로그래머스 자연수 뒤집어 배열로 만들기 자바

개발한기발자 2023. 2. 6. 19:44
반응형

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12932

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

[문제 설명]

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요.

예를 들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

[제한 조건]

  • n은 10,000,000,000이하인 자연수입니다.

[입출력 예]

n return
12345 [5,4,3,2,1]

 

[나의 풀이]

import java.util.Arrays;

class Solution {
    public int[] solution(long n) {
    
        String s = String.valueOf(n);
        
        int[] answer = new int[s.length()];
        
        for (int i = 0; i < answer.length; i++) {
            answer[i] = Integer.parseInt(s.substring(answer.length-1-i, answer.length-i));
        }
        
        return answer;
    }
}

포인트는 String 문자열로 바꾸는 String.valueOf를 통해 자연수를 문자열로 사용하게 바꾸는 것!

이후 반복문을 이용해 문자를 다시 Integer.parseInt()로 Parsing 하여 각 배열 요소에 저장 후 출력!

 

[다른 사람들의 풀이]

class Solution {
  public int[] solution(long n) {
    String a = "" + n;
    int[] answer = new int[a.length()];

    int cnt=0;

    while(n > 0) {
        answer[cnt]=(int)(n%10);
        n/=10;
        System.out.println(n);
        cnt++;
    }
    
    return answer;
  }
}

엥 갑자기 "" + n;을 했지? 생각했지만 바로 무릎을 탁 칠 수 있었다!

"" + n 할 경우 Java 내부적으로 StringBuffer가 생성된다.

"" + n 같은 경우, 따지고 보면 new StringBuffer() 후, append 한 것과 같은 원리!

이후 숫자를 10으로 나눈 나머지, 즉 1보다 크면 1의 자리를 반환하는 규칙을 이용하여,

배열의 인덱스 순서에 맞게 숫자를 뒤집어 넣어주게 된다...

 

[정리]

개인 피셜 난이도 : ★

굉장히 쉬운 문제다.

나처럼 풀어도 되고, 다른 사람처럼 풀어도 되고, 정해진 답은 없다!

물론 성능상 좋은 코드를 쓰는게 좋다!

그리고, 다른 사람들의 풀이를 통해, 때에 따라 필요한 이런 센스들을 사용할 줄 아는 것이,

실력 향상의 지름길이라고 본다.

 

언제나 새로운 정보 공유와 잘못된

비판/정보 지적/태클은 환영입니다!

 

끝.

728x90
반응형