JAVA 알고리즘 && 메서드
변수 한번에 이름 바꾸기
ALT + SHIFT + R
숫자 뒤집기 알고리즘
while(tmp > 0) { int tmp = num; tmp = tmp % 10; res = res * 10 + tmp; rmp = tmp / 10; }
최댓값 메서드
Math.max(answer, num);
숫자인지, 알파벳인지 확인
Character.isDigit(x); // 숫자인지 Character.isAlphabetic(x); // 알파벳인지
대/소문자 확인 대문자 범위 : 65 ~ 90 / 소문자 범위: 97 ~ 122 => (char)(소문자 - 32) = 대문자
Character.isLowerCase(x); // 소문자면 true 반환 대문자면 false 반환 Character.isUpperCase(x); // 반대
대/소문자로 통일 (소문자는 toLowerCase())
str = str.toUpperCase(); // 문자열 전체 대문자로 t = Character.toUpperCase(t); // 문자를 대문자로
문자열 뒤집기(StringBuilder, reverse())
String tmp = new StringBuilder(문자열).reverse().toString();
// 직접 구현 for(String x : str) { char[] s = x.toCharArray(); int lt = 0, rt = x.length()-1; while(lt < rt) { char tmp = s[lt]; s[lt] = s[rt]; s[rt] = tmp; lt++; rt--; } String tmp = String.valueOf(s); }
배열
int[] tmp = arr.clone();// arr에는 영향을 주지 않는 배열 생성
Arrays.sort(tmp);// 배열 오름차순 정렬 int lt = Arrays.stream(arr).max().getAsInt(); // 최대값 리턴 int rt = Arrays.stream(arr).sum(); // 배열 전체 원소의 합 리턴
문자(숫자)를 int형 숫자로 바꾸기
'0' => 48이기 때문에 '3' - 48을 하면 int형 3이 된다.
ArrayList<>
Collections.sort(sort); // 오름차순 정렬 Collections.reverse(sort); // 내림차순 정렬
HashMap: (key, value), key값 중복 X, value값 중복 O
HashMap<Character, Integer> map = new HashMap<Character, Integer>(); for(char x : str.toCharArray()) { map.put(x, map.getOrDefault(x, 0)+1); // map에 key값으로 x가 없으면 기본값 0으로 초기화하고 +1 // 값이 있다면 그 값에서 +1 }
int max = Integer.MIN_VALUE; for(char key : map.keySet()) { // map의 key 탐색 if(map.get(key) > max) { max = map.get(key); answer = key; } }
map.containsKey('F'); // true, false 반환 map.size(); // key 갯수 반환 map.remove('A'); // key A 삭제 map.clear(); // key 전체삭제 map.equals(비교할 map); // true, false 반환
TreeSet: 중복제거, 내림차순, 오름차순 정렬
TreeSet<Integer> Tset = new TreeSet<Integer>(Collections.reverseOrder()); // 오름차순 TreeSet<Integer> Tset = new TreeSet<Integer>(); // 기본: 내림차순 Tset.add(arr[i] + arr[j] + arr[l]); // 값 추가하기 Tset.remove(143); //특정 값 제거 Tset.size(); // 전체 길이 반환 Tset.first(), last() // 맨 앞, 맨 뒤(최대최소)
Stack (Vector)
Stack<Character> stack = new Stack<Character>(); // Char형 스택 선언
stack.push(x); // 값 넣기 // 넣은 값 반환 stack.pop(); // 값 빼기 // 뺀 값 반환 stack.peek(); // 값을 빼지 않고 최상위 값을 반환 stack.isEmpty(); // 남아있는 요소 확인, true, false 반환 stack.size(); // 스택 길이 반환 stack.get(i); // 스택 배열 인덱스기준 값 반환 for(char x : stack) sout(x); // forEach 사용가능
Queue
Queue<Integer> Q = new LinkedList<Integer>();// 선언
for(int i = 1; i <= n; i++) Q.offer(i);// Queue객체에 값 추가하기 FIFO
Q.isEmpty(); // Queue가 비었는지 확인 true, false 반환 Q.offer(Q.poll()); // 값을 제거한 값을 리턴하고 다시 가장 뒤에 추가하기 Q.size(); // Queue의 사이즈 리턴
// 객체 만들어서 Queue에 넣기 Queue<Person> Q = new LinkedList<Person>(); for (int i = 0; i < n; i++) { Q.offer(new Person(i, arr[i])); }
Author And Source
이 문제에 관하여(JAVA 알고리즘 && 메서드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@_jackson/JAVA-알고리즘-메서드저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)