자주 찾아보는 알고리즘 문법

0

알고리즘

목록 보기
10/14

배열 특정 범위 복사

  • Arrays.copyOfRange(배열이름, 시작인덱스, 끝+1);

배열에서 특정 문자열은 [i]

  • String에서 특정 문자열은 .charAt(i)

특정 문자열로 치환하기

  • replace
  • replaceAll
  String str = "aaabbbccccabcddddabcdeeee";
  String result1 = str.replace("abc", "왕");
  String result2 = str.replaceAll("[abc]", "왕");
-
  System.out.println("replace result->"+ result1);
  System.out.println("replaceAll result->"+ result2);
-
	결과값
	replace result->aaabbbcccc왕dddd왕deeee
	replaceAll result->왕왕왕왕왕왕왕왕왕왕왕왕왕dddd왕왕왕deeee

  • replaceAll에는 정규식을 사용할수가 있어서 replace에서 처리하지 못한 문자열도 처리가능.
  • [abc] 는 정규식 표현. [abc]는 []안에 있는 문자들을 전부 왕으로 변환시켜줍니다. a or b or c 3가지의 문자를 만나면 전부 치환대상이 됩니다.

약수, 순서쌍(약수의 개수와 동일)의 개수를 구할 때

for문 2번에 i * j == n 이 될 때 카운팅하지 말고, n % i == 0 일때 카운팅 해줘야함. for문 2번 돌리면 n의 범위가 클 때 시간초과 뜸!


제곱 수 구하기

Math.pow(대상숫자, 지수);
-> 입력, 출력값 모두 double형.
-> 2의 거듭제곱이라면 곱할 수 << t 로도 표현 가능 (2^t)만큼 곱해짐


String -> int

  • Integer.parseInt(문자열) : java.lang.Integer 클래스의 static 메소드 / primitive type인 int를 리턴
  • Integer.valueOf(문자열) : 위와 같음. 차이점은 Integer Object를 리턴한다는 것.
    -> int로 변환하기 위해서 Integer.valueOf(문자열).intValue() intValue를 사용.

int -> String

  • Integer.toString(숫자)
  • String.valueOf()
  • int + ""
  • int 배열을 String으로
    • Arrays.toString(int[])

char -> String

  • .toCharArray() : char[] array = 문자열.toCharArray();
  • String.valueOf(char[]) : char[]을 매개변수로 넣으면 String으로 변환시켜 준다.
  • String의 생성자 이용 - new String(char[] value, int offset, int count)
    : change = new String(array, 1, 5)

한 글자일때

  • Character.toString() : null값이 들어오면 Null pointer Exception이 뜸
  • String.valueOf() : null값이 들어오면 null 문자열을 리턴

String[] -> string

  • Arrays.toString(배열)
  • String.join("구분할문자", 배열)
  • Stream
  • StringBuilder : for문으로 String에 append붙이고, toString() 이용

문자열 대,소문자 변환

  • 소문자 -> 대문자
    • 문자열.toUpperCase()
  • 대문자 -> 소문자
    • 문자열.toLowerCase()
  • 응용
    char[] c = my_string.toLowerCase().toCharArray();
    : String의 대문자를 모두 소문자로 바꾸고 char배열에 넣음
  • 대,소문자 관계없이 문자열이 같은지 비교하기
    • equalsIgnoreCase()
  • isUpperCaser() : 대문자면 true, 소문자면 false 반환

double -> int

  • (int) Math.round(answer);

특정 문자 위치 찾기

  • indexOf
    • indexOf(String str)
    • indexOf(int ch)
    • indexOf(int ch, int fromIndex)
    • indexOf(String str, int fromIndex)
      : 특정 문자나, 문자열이 에서부터 처음 발견되는 인덱스를 반환. 없으면 -1 반환
  • lastIndexOf()
    - lastIndexOf(String str)
    - lastIndexOf(int ch)
    - lastIndexOf(int ch, int fromIndex)
    - lastIndexOf(String str, int fromIndex)
    : 특정 문자나 문자열이 에서부터 처음 발견되는 인덱스를 반환. 없으면 -1반환
    대상문자열.indexOf("찾는문자열", 시작할 위치)
    -> 포함하고 있는지를 확인하려면 대상문자열.contains(찾는문자열)을 이용해도 될 듯.

두 배열을 비교하기

  1. 일차원 배열 : Arrays.equals(배열, 배열 또는 null)
  2. 다차원 배열 : Arrays.deepEquals(배열, 배열 또는 null)
    -> 배열이니까 equals 또는 == 가 아닌 Arrays 를 이용!
profile
백엔드를 공부하고 있습니다.

0개의 댓글