[코테 스터디 1일차 TIL] 자연수 뒤집어 배열로 만들기

dev_jubby·2024년 7월 22일
1

코테스터디

목록 보기
1/36



💛 오늘의 학습 키워드

[배열] 자연수 뒤집어 배열로 만들기



📝 문제

문제 설명

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

제한 조건

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

입출력 예

nreturn
12345[5,4,3,2,1]



💬 내 풀이

class Solution {
    public int[] solution(long n) {
        String tmp = String.valueOf(n);
        int[] answer = new int[tmp.length()];
        for(int i=0; i<tmp.length(); i++) {
            answer[i] = tmp.charAt(tmp.length()-i-1) -'0';
        }
        return answer;
    }
}

💻 내 접근 방법!

  1. 먼저 정수를 문자열로, 문자열을 문자로 변환하여 배열에 넣어야 겠다고 생각했다.

    • String.valueOf() : 어떤 값을 넣어도 문자열로 변환하는 함수
    • Obeject.toString() : 문자열로 변환하는 함수이지만, 기본 자료형에 사용할 수 없다!
  2. length() 를 사용해서 문자열의 길이만큼 배열 크기를 지정해주었다.

  3. for() 반복문안에서 charAt() 함수를 사용하여 한 문자씩 추출 후 아스키코드를 사용하여 정수 값으로 변환해 주었다.



✨ 다른 사람 풀이

import java.util.stream.IntStream;

class Solution {
    public int[] solution(long n) {
        return new StringBuilder().append(n).reverse().chars().map(Character::getNumericValue).toArray();
    }
}
  • StringBuilder() : 문자열의 변경이 가능한 가변 클래스로, 동기화는 지원하지 않는다. (단일 쓰레드에서 성능 UP)

  • reverse() : StringBuilder 나 StringBuffer, Collections 등 에서 사용이 가능하다.

  • chars() : String 형을 Stream을 이용해서 char 형태로 추출이 가능하다. 아스키코드로 변환하거나, String을 List 형으로 변경할 때에 사용이 가능하다.

    chars() 사용 예제

    String str = "Hello World";
    List<Character> charStr = new ArrayList<> ();
    str.chars().map(x -> x + 1).forEach(y -> charStr.add(Character.valueOf((char) y)));
  • getNumericValue() : 숫자 형태의 char 형을 int형으로 변환할 때 사용한다.

  • ClassName::MethodName : 메서드 레퍼런스로, 람다식 작성할 때 자주 사용된다.

    메서드 레퍼런스 사용 예제

    // Lambda
    Consumer<String> func = text -> System.out.println(text);
    // Method References
    Consumer<String> func = System.out::println;



💦 회고

더 다양한 함수를 사용하고, 깔끔한 코드를 짤 수 있도록 노력이 필요할 것 같다..!
이제 시작이니까 화이팅!




참고
https://colevelup.tistory.com/11
https://codechacha.com/ko/java8-method-reference/
https://yangbox.tistory.com/59
https://codechacha.com/ko/java-convert-string-to-chararray/

profile
신입 개발자 쥬비의 기술 블로그 입니다.

0개의 댓글