알고리즘 정리

코테 개념(문자열 수정, 진법 바꾸기)

로미로미로 2024. 11. 9. 16:35

 

 

String 문자열 수정

-> 그냥 수정하면 안됨. 리터럴이라서

  1. StringBuilder 사용해서 수정하는 법
  • StringBuilder 형의 객체 sb 생성하고 
  • sb.setCharAt(int, char) 함수로 int번째의 문자를 char문자로 교체한다.
  • 마지막에 str = sb.toString(); 하면 완료
  1. substring(int,int) 사용 
  • 문자열을 교체할 문자 앞과 뒤의 부분으로 분할하는 방법. 
  • 예를들어 str = str.substring(0,6) + ‘-‘ + str.substring(7); //0부터 6전까지, 6수정하고 7부터 끝까지
  1. toCharArray 사용 
  • 주어진 문자열을 문자 array로 변환
  • String str 문자열이 있다고 할때, char[] chars = str.toCharArray(); 로해서 사용가능
  • 다시 변환할때는 str = String.valueOf(chars);

 

#Stream 사용방법 아래 블로그 참고

https://develop-writing.tistory.com/137

 

ArrayList 생성방법

ArrayList<Integer> array = new ArrayList<>();

array.add(int);

 

내림차순 정렬하기 함수

-> Arrays.sort(arr, Collections.reverseOrder());

 

10진법인 수 x를 -> n진법(String)으로 바꾸기

Integer.toString(x,n);

 

n진법인 수 x를-> 10진법으로 바꾸기

Integer.parseInt(x,n); 

 

 

#람다식 해석

Arrays.sort(indices, (i1, i2) -> Double.compare(arr[i2], arr[i1]));


indices 는 인덱스번호로 이루어진 integer 배열이다. (indices[I] 는 i로 되어있음)

위의 람다식 뜻은 indices 배열을 arr[]배열의 내림차순으로 이루어진 인덱스의 나열을 indices 에 넣는다는 의미이다.

indices 배열의 각 원소는 arr 배열의 인덱스를 의미한다.

arr[i1]과 arr[i2]의 값을 비교하는 방식으로 indices 배열을 정렬합니다.

Double.compare(arr[i2], arr[i1])에서 arr[i2]와 arr[i1]을 비교하는데, 이렇게 하면 arr 배열의 값이 큰 순서대로 내림차순으로 정렬됩니다.

즉, arr 배열의 값이 큰 인덱스가 앞에 오도록 indices 배열이 재정렬됩니다.