본문 바로가기
TIL : Today I learned (or Week)

TIL 230822 : 코딩테스트 입문단계에서 습득한 내장 메소드들 정리

by 우인입니다 2023. 8. 25.

코딩테스트 입문 단계에서 자주보이는 기본 메소드들이 있다.

문자열 메소드에서 복잡해지면서(어려운 거 아님)

약간 돌아서게 되기도 했는데,

 

여러 메소드들을 정리해보며 정면 돌파해보려 한다.

이후에도 계속 추가 예정이다.


Integer

String을 int로 변환

 

Integer i = Integer.valueOf( String str );

 : 문자열 타입의 숫자를 Integer로 반환

int i = Integer.parseInt( String str );

 : String문자열의 숫자를 받아서 int 타입으로 반환한다.

 

위 둘의 차이는 Auto Boxing 기능이 추가된 이후로는 체감되는 차이가 거의 없다고 공식문서에도 나와있다.

 

Integer.parseInt("10010", 2);

 : 위처럼 두번째 값으로 n진수의 숫자를 10진수로 바꿔줄 수도 있다.

 

 

 

int를 String으로 변환

int i = 123;
//toString 메소드 사용
String strFromInt1 = Integer.toString(i);
//자동 변환
String strFromInt2 = i + "";

 

Integer.parseInt("10010", 2);

 : 위처럼 두번째 값으로 n진수의 숫자를 10진수로 바꿔줄 수도 있다.

Integer.toBinaryString( int i );

 : int를 2진수의 String으로 반환해줄 수 있다.

Integer.toString( int i , int n );

 : int를 받아 n진수로 변환해준다.

 

 

배열의 toString

double[] values = {1.0, 1.1, 1.2};

System.out.println(values.toString()); // 이렇게 하면 [D@46a49e6 같은 값이 나옵니다.
System.out.println(Arrays.toString(values)); // 이렇게 하면 [1.0, 1.1, 1.2] 이 출력됩니다.

 

 

 

String

 

Char[] arr = str.toCharArr;

 : String을 각각의 문자로 쪼개서 배열로 담는다.

String strNew = str.replaceAll("[정규식]", "(변경할 문자)");

 : 해당조건의 문자열을 특정 문자열로 대체해준다.

 

replace도 전부 바꿔줍니다 replaceAll은 정규식을 사용할 때 사용하고 replace는 비교 문자열을 바꿔줍니다. 맨 처음만 바꾸는건 replaceFirst가 따로 있습니다

 

 

String[] arr = str.split("분할해 줄 기준 문자");

 : 특정 문자열을 기준으로 쪼개서 배열에 담아준다. 만약 "" 빈문자열을 기준을 잡으면, 한 글자씩 쪼개준다.

 

String.join("seperator" , String[ ] arr);

 : 배열들을 하나로 조립해주는 거. 사이사이 어떤 문자열을 넣어줄 수도 있다.

 

str.toLowerCase();

 : 문자열 모두 소문자로 변경.

 

new String(char[ ] arr);

 : 배열을 넣어주는 것도 가능

 

 

문자열 뒤집기

        StringBuffer sb = new StringBuffer(str);
        String reverse = sb.reverse().toString();

 

 

Character

 

Character.isUpperCase()

 : 해당 문자가 대문자면 True 리턴

Character.toUpperCase()

 : 해당 문자를 대문자로 전환.

 

 

Math

Math.abs( );

 : 절대값

 

Math.max(a, b);

 : 최대값

Math.min(a, b);

 : 최소값

 

Arrays

 

Arrays.sort( arr );

 

내림차순

    // primitive Type을 Wrapper클래스로 박싱해주어야 reverseOrder 사용가능.
    Integer[] tmp = Arrays.stream(arr).boxed().toArray(Integer[]::new);

Arrays.sort(arr, Collections.reverseOrder()); //1. Comparator를 넣어준다.

Arrays.sort(arr, new Comparator<Integer>() {  //2. 직접 Comparator를 설정하는 경우
    @Override
    public int compare(Integer i1, Integer i2) {
        return i2 - i1;
    });
    
Arrays.sort(arr, (i1, i2) -> i2 - i1

 

 

 

Arrays.toArray

 

Arrays.copyOfRange(array, startIntex, endIndex)

 : substring느낌으로 복사해올 수 있다.

 

 

 

List에서 Array로 변환

List<Integer> integerList = new ArrayList<>();

Integer[] integerArr = integerList.toArray(new Integer[integerList.size()]);

 

Wrapper클래스 콜렉터를 원시타입 배열로

list.stream().mapToInt(Integer::intValue).toArray();

 

 

 


궁금한 것.

 

콤비네이션 조합의 경우의 수를 반복 실행하려면??

 

단순 for문으로는 안된다..

 

혹은 for문으로 모든 경우의 수를 하다가 이전에 나온 수가 나오면 패스하는 식으로 해야하나..?

 

 

 

 

 

 


 

참고링크

 

 

https://adjh54.tistory.com/106#2.%20%EB%B0%B0%EC%97%B4%20%EC%9A%94%EC%86%8C%20%EC%82%BD%EC%9E%85%20%EB%B0%8F%20%EC%B6%94%EC%B6%9C-1

https://gowoonsori.com/java/listtoarray_arraytolist/