관리 메뉴

Mini

프로그래머스 자연수 뒤집어 배열로 만들기 java// str[i]안됨 str.charAt 사용 , List to intArray , list.toArray는 래퍼만사용가능 , Long.toString, str to int valueOf vs parseInt 본문

Algorithm/programmers

프로그래머스 자연수 뒤집어 배열로 만들기 java// str[i]안됨 str.charAt 사용 , List to intArray , list.toArray는 래퍼만사용가능 , Long.toString, str to int valueOf vs parseInt

Mini_96 2023. 8. 8. 17:02

https://school.programmers.co.kr/learn/courses/30/lessons/12932

 

프로그래머스

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

programmers.co.kr

*Long.toString

Long.toString(값)

String s=Long.toString(n);

※ 자바 : String S가 대문자임에 주의.

 

* str to int

Integer.parseInt(문자열)

String str = "25";
        try{
            int number = Integer.parseInt(str);
            System.out.println(number); // output = 25
        }

* str to Integer

Integer.valueOf(문자열)

parseInt : int 리턴

valueOf : Integer리턴

 String str = "25";
        try{
            Integer number = Integer.valueOf(str);
            System.out.println(number); // output = 25
        }

 

* str[i]안됨 str.charAt 사용

for(int i=s.length()-1;i>=0;--i){
            v.add(s.charAt(i)-'0');     //s[i]안됨.
            //v.add(0);
        }

*List to intArray : 노가다

기본형배열로 바꿀려면 노가다해야함.

 // List to intArray : int 기본형(primitive) 변환 - 전통적인 방법
        int[] answer = new int[v.size()];
        for(int i = 0; i < v.size(); i++){
            answer[i] = v.get(i);
        }

*list.toArray는 래퍼만사용가능

(기본형 배열은 노가다해야함)

// 3. Stream API (Java8 이상)
String[] arr3 = list.stream().toArray(String[]::new);

 

* 정답코드

import java.util.*;

class Solution {
    static long num;
    static ArrayList<Integer> v=new ArrayList<>();
    
    public int[] solution(long n) {
        //v.add(1);
        String s=Long.toString(n);
        System.out.println(s);
        
        for(int i=s.length()-1;i>=0;--i){
            v.add(s.charAt(i)-'0');     //s[i]안됨.
            //v.add(0);
        }
        
        System.out.println(v);
        
        // List to intArray : int 기본형(primitive) 변환 - 전통적인 방법
        int[] answer = new int[v.size()];
        for(int i = 0; i < v.size(); i++){
            answer[i] = v.get(i);
        }

        return answer;
    }
}