Algorithm

알고리즘 문법 정리

challnum 2023. 2. 13. 22:22

Long 문법

String을 Long으로 변환
Long.parseLong(String s);

String 문법

String.valueOf(int i) : i를 string i로 변환시켜준다.
String.substring(int i , int n) : i index위치부터 n - 1 index위치까지 자른 String을 반환한다.
String.split(String s) : s를 기준으로 문자열을 잘라준다.
String.split(String s, int i) : s를 기준으로 문자열을 i의 크기만큼 잘라준다. // 01-23-45일 경우 split("-",2); 라면 str[0] = 01 str[1] = 23-45의 값을 가지게 된다.

치환

10진수 -> 2진수 String : Integer.toBinaryString(8); // 1000
2진수 -> 10진수 int :  Integer.parseInt("1000",2); //8
parseInt​(String s, int radix) : String s 를 radix인수로 변환
parseInt​(String s) : String s를 int 값으로 변환

정규표현식

String [] str = my_string.split("[a-zA-Z]") : a-zA-z사이의 값으로 split
replaceAll("[^0-9]", "") : 0~9사이의 값이 아닌 경우 모두 삭제

정렬

오름차순
Integer[] arr = {1, 26, 17, 25, 99, 44, 303};

Arrays.sort()

내림차순
Integer[] arr = {1, 26, 17, 25, 99, 44, 303};

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

문자열 정렬
public String solution(String s) {
        s = Stream.of(s.split(""))
                    .sorted()
                    .collect(Collectors.joining());

배열 변환

Stream을 이용한 방법
Integer[] arr3 = Arrays.stream(arr).boxed().toArray(Integer[]::new);

확인을 위해 .collect를 사용해 리스트로 변환
System.out.println(Arrays.stream(arr3).collect(Collectors.toList()));

Integer 배열을 Int 배열로
int[] arr4 = Arrays.stream(arr3).mapToInt(i->i).toArray();

String int 배열로 변환
Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();


Integer -> int로 변환
int [] sum = {}
ArrayList<Integer> answer = new ArrayList<>();
sum =  answer.stream().distinct().mapToInt(Integer::intValue).toArray();

인덱스 찾기

기본 데이터 유형으로 변환하기에 integer리스트로 변환 필수

Integer배열 인덱스 위치 반환
Integer[] array1 = {2, 4, 6, 8, 10};

int getIndex = Arrays.asList(array1).indexOf(8);

배열 인덱스 위치 반환
import java.util.stream.IntStream;

int[] array1 = {1, 3, 5, 7, 9};

int elementToFind = 3;

int indexOfElement = IntStream.range(0, array1.length).
    filter(i -> elementToFind == array1[i]).
    findFirst().orElse(-1);

'Algorithm' 카테고리의 다른 글

이진 탐색  (0) 2023.08.12
저주의 숫자 3  (0) 2023.02.22
2차원으로 만들기.java  (0) 2023.02.12
가장 큰 수 찾기  (0) 2023.01.24
공간 복잡도  (0) 2022.08.05