[TIL 23.01.30] 배운거 또까먹고 또..

이승렬·2023년 1월 30일
0

항해99

목록 보기
20/34
post-thumbnail

문제 풀면서 자꾸 알던것들 까먹는 경우가 정말 많은 것 같다.
일단 스프링을 쓰면서, 완전 필요한 알고리즘과 같은 경우는 없기 때문에
이는 제껴두고 꼭 필요한 개념들을 미리 확 훑고 간다고 생각하면서 공부하자
지금 너무 무리하면 나중에 헤비해짐~

Q1. 정수의 최댓갓, 정수의 최솟값

지금까지는 정수의 최댓값, 최솟값을 미리 선언, 즉 초기화 시키고 가는 문제에서
-999 나 999 와 같이 임의로 초기화를 시켰지만 이제는 직접 정해주자.

public class Main {
    public static void main(String[] args) {
        System.out.println(Integer.MAX_VALUE); // 2147483647
        System.out.println(Integer.MIN_VALUE); // -2147483648
    }
}

Q2. 배열 초기화를 하고 들어가야 하는 이유

문제를 풀다보면 오늘과 같은 문제에서 배열, 특히나 스트링 배열과 같은 경우에 null 값이 임의로 들어가는 경우가 있다.

이때 null 값을 빼주기 위해서 공백으로 전부 초기화를 시켜주고 시작하는 것이 좋다.
특히나 계속해서 값을 더하는 문제에서는 공백으로 초기화를 시켜주자

newWords[i] += words[i].charAt(j);

만약 다음과 같은 부분만 있다고 하면, 다음과 같은 코드는 기존의 값을 가져와서 기존갑셍다가 + 연산을 진행한다.

"" 로 초기화를 하지 않으면 기존의 값이 null 일 것이고, 앞에 null 이 자동으로 붙을 것이다.

여러가지를 찾다보니 문자열 초기화에 관련해서 유용한 사이트를 찾았다.

https://www.techiedelight.com/ko/initialize-array-string-java/

String[] arr = new String[5];
System.out.println(Arrays.toString(arr)); 

다음과 같은 경우는 모두 null 값으로 초기화가 된다.

모두 공백으로 초기화를 시켜주고 싶다면 다음과 같이 하자

String[] arr = new String[5];
Arrays.setAll(arr, i -> " ");
System.out.println(Arrays.toString(arr))

Q3. 문자열에서 뭔가 제거하고 싶다면 다음과 같이 하자

출처: https://developer-talk.tistory.com/708

  1. 배열을 List 로 변환한다.
  2. List 의 remove 메서드를 이용한다.
  3. 특정 인덱스 요소가 제거된 것을 List 로 다시 변환한다.
public static void main(String args[]) {
  String[] strArray = { "10", "20", "30", "40", "50", "60", "70" };

  System.out.println("2번째 인덱스의 요소 삭제 전: " + Arrays.toString(strArray));

  List<String> strList = new ArrayList<>(Arrays.asList(strArray));
  strList.remove(2);
  strArray = strList.toArray(new String[0]);

  System.out.println("2번째 인덱스의 요소 삭제 후: " + Arrays.toString(strArray));

Q4. 만약 숫자배열을 숫잠반 출력해주고 싶을때.

숫자 리스트관련해서 중요한 자료들 모음 https://zetawiki.com/wiki/%EC%9E%90%EB%B0%94_int_%EB%B0%B0%EC%97%B4%EC%9D%84_String%EC%9C%BC%EB%A1%9C_%EB%B3%80%ED%99%98


import java.util.Arrays;
public class MyClass {
    public static void main(String args[]) {
        int[] arr = {1,2,3,4};
        String str = Arrays.toString(arr).replaceAll("[^0-9]"," ");
        System.out.println( str );
    }
}

다음과 같은 작업으로 replaceAll 을 통해서 해줘도 상관없고
바로 그냥 foransdmfh 때려박아도 된다.

Q5. 이차원 배열 출력하는 방법

출처: https://developer-talk.tistory.com/706

만약 2차원 배열일때는 출력하는것이 조금은 곤란할 수 있다. 따라서 이는 Arrays 클래스의 deepToString 메서드를 사용하자.

public static void main(String args[]) {
  String[][] strArray = {
        {"AA", "AB", "AC"},
        {"BA", "BB", "BC"},
        {"CA", "CB", "CC"}
  };

  System.out.println(Arrays.deepToString(strArray));
}

마치며..

내일은 모의고사가 있다.
뭐 잘보겠지
끝!

profile
Backend_Developer

0개의 댓글