algorithm/정리

99클럽 코테 스터디 3일차 TIL - java String / java 약수 구하기 최적화 알고리즘

ssoheeh 2024. 4. 3. 17:01

String

사용 빈도수 높은 method

리턴 타입 메소드 이름(매개 변수) 설명
char charAt(int index) 특정 위치의 문자를 리턴합니다.
boolean equals(Object anObject) 두 문자열을 비교합니다.
byte[] getBytes() byte[]로 리턴합니다.
byte[] getBytes(Charset charset) 주어진 문자셋으로 인코딩한 byte[]로 리턴합니다.
int indexOf(String str) 문자열 내에서 주어진 문자열의 위치를 리턴합니다.
int length() 총 문자의 수를 리턴합니다.
String replace(CharSequence target, CharSequence replacement) target 부분을 replacement로 대치한 새로운 문자열을 리턴합니다.
String substring(int beginIndex) beginIndex 위치에서 끝까지 잘라낸 새로운 문자열을 리턴합니다.
String substring(int beginIndex, int endIndex) beginIndex 위치에서 endIndex 전까지 잘라낸 새로운 문자열을 리턴합니다.
String toLowerCase() 알파벳 소문자로 변환한 새로운 문자열을 리턴합니다.
String toUpperCase() 알파벳 대문자로 변환한 새로운 문자열을 리턴합니다.
String trim() 앞뒤 공백을 제거한 새로운 문자열을 리턴합니다.
String valueOf(int i)
valueOf(double d)
기본 타입 값을 문자열로 리턴합니다.

 

궁금한 점 string.replace('a','')는 안되는데 string.replace("a","")는 가능한 이유는..?

-> ''는 문자열이 아니기 때문..! 근데 ' '는 문자열로 인식됨

 

 

문자열 비교 (==말고 equals 쓰자)

strVar1.equals(strVar2)

 

 

 

대상 문자열에 특정 문자열이 포함되어 있는지 확인

// contains 사용
if(str.contains("사과")) {
        System.out.println("contain - 포함");
}else {
        System.out.println("contain - 미포함");
        }
// indexOf 사용
if(str.indexOf("string") > -1) {
        System.out.println("포함");
}else {
        System.out.println("미포함");
    }

 

 

 

약수 구하기

int n = 100; // 입력 값
int sqrt = (int) Math.sqrt(n); // 100의 제곱근은 10
ArrayList<Integer> arr = new ArrayList<>(); // 약수 받을 ArrayList

for(int i = 1; i <= sqrt; i++){
   if(n % i == 0){ // 약수 중 작은 수 저장
    arr.add(i);
        if(n / i != i){ // 약수 중 큰 수 저장
            arr.add(n / i);
        }
    }
}

 

 

 

오늘의 회고

  • 항상 시간복잡도를 잘 생각해서 알고리즘 최적화 후 문제를 풀자
  • 내일(4/4) 학습 예정 : 정렬 알고리즘 정리