반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 데이터탑입
- 프로그래머스
- SQL
- Exception
- 차이점
- primitivetype
- char
- 알고리즘
- 자바오류
- 코딩테스트
- 차이
- Char[]
- java
- json파싱
- 참조타입
- 시뮬레이션
- ReferenceType
- sql태그
- 자바
- 변수
- Spring
- JSON
- 주사위굴리기
- include태그
- ClassPathResource
- 내맘대로정리
- string
- 원시타입
- mybatis
- 백준
Archives
- Today
- Total
재채기는 H
JAVA 코딩테스트 IDE사용 못할 경우, 자주 사용하는 함수 정리 본문
반응형
라이브러리 선언
import java.util.*;
import java.io.*;
// Stream을 사용하기 위해선 import java.util.stream.*; 추가하자
// Entry를 사용하기 위해선 import java.util.Map.*; 추가하자
배열
int arr[] = {10, 8, 11, 2, 3, 0};
// 1. 오름차순 {0, 2, 3, 8, 10, 11}
Arrays.sort(arr1);
// 2. 내림차순 {11, 10, 8, 3, 2, 0}
Arrays.sort(arr1, Collections.reverseOrder());
//주의점! Object상속으로 Wrapper클래스로 Boxing해주어야한다.
//-- Integer[] temp = Arrays.stream(arr1).boxed().toArray(Integer[]::new);
//-- Arrays.sort(temp, Collections.reverseOrder());
// 3. 일부만 정렬 {2, 8, 11, 10, 3, 0} (0~4만 정렬)
Arrays.sort(arr1, 0, 4)
// 4. 오름차순 정렬하면 binary search로 특정 값을 찾을 수 있다. inex값
// 주의) 정렬시킨 다음의 인덱스를 추출하는거임
Arrays.sort(arr1);
int indx = Arrays.binarySearch(arr1, 2);
// 5. 배열을 ArrayList로 변환할 때
List<Integer> list = Arrays.asList(arr1);
// 6. 배열의 특정 범위 자르기 (범위 복사 0,1,2 )
int[] tmp = Arrays.copyOfRange(arr1, 0, 3);
// 7. String을 문자배열로
char[] c = str.toCharArray();
// 8. String 배열로
String str = "12345";
String[] Arr = str.split(""); //[1,2,3,4,5]
String
// 1. String값 변경
String name="starfucks";
String newname=name.substring(0,4)+'b'+name.substring(5);
System.out.pirntln(newname); // starbucks
============================================================================
// 2. 문자열 뒤집기
String str = "Reverse";
String str = new StringBuilder(words).reverse().toString();
System.out.println(str);
[출력]
esreveR
// 3. 문자열 자르기
String str="1234567";
str.substring(3); // "4567"
str.substring(2,5) // "345"
length / length() / size()
- length: 배열의 길이 (arr.length)
- length(): **String** related object (str.length())
- size(): **Collections** object (list.size())
ArrayList 초기화
-
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(2,3,4));
-
// 1. 문자열 배열일 떄 String[] arr = { "A", "B", "C" }; // 배열 -> List로 변환 List<String> list = new ArrayList<>(Arrays.asList(arr));
-
//2. int형 배열일 때 int[] arr = { 1, 2, 3 }; // int -> List List<Integer> intList = Arrays.stream(arr).boxed().collect(Collectors.toList()); System.out.println(intList.size()); // 3 System.out.println(intList); // [1, 2, 3]
ArrayList 배열 중복없이 초기화
-
ArrayList<Integer> list = new ArrayList<>(); for(int value : arr){ if(list.indexOf(value) < 0){ list.add(value); } }
List 깊은 복사
-
ArrayList<Integer> list1 = new ArrayList<>(); ArrayList<Integer> list2 = new ArrayList<>(); list2.addAll(list1);
Set을 List로 변환
-
Set<String> set = new HashSet<>(); List<String> list = new ArrayList<>(set);
List정렬
-
ArrayList<Integer> list = new ArrayList<>(); Collections.sort(list);
PriorityQueue 내림차순
-
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
-
import java.io.IOException; import java.util.PriorityQueue; public class PQ { static class Node{ int y; int x; Node(int y,int x){ this.y=y; this.x=x; } public int compareTo(Node p) { if(this.y < p.x) { return -1; // 오름차순 } else if(this.y == p.y) { if(this.x < p.x) { return -1; } } return 1; } } public static void main(String[] args) throws IOException{ PriorityQueue<Node> pq1=new PriorityQueue<>(Node::compareTo); pq1.add(new Node(1,2)); pq1.add(new Node(1,1)); pq1.add(new Node(2,3)); pq1.add(new Node(2,1)); while(!pq1.isEmpty()){ Node node=pq1.peek(); System.out.println(node.y+" "+node.x); pq1.remove(); } } } [출력] 1 1 1 2 2 1 2 3
HashMap 모든 Key값 가져오기
-
for(String key : hashMap.keySet()){ System.out.println("키 : " + key); }
HashMap 모든 Key값과 Value값 가져오기
-
for(Entry<String, Integer> elem : hashMap.entrySet()){ System.out.println("키 : " + elem.getKey() + "값 : " + elem.getValue()); }
-
map.forEach((k, v) -> System.out.println(k + ": " + v));
HashMap 최대/최소 Key값 가져오기
-
Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 5); map.put(2, 70); map.put(3, 50); // Max Key Integer maxKey = Collections.max(map.keySet()); // Min Key Integer minKey = Collections.min(map.keySet()); // 결과 출력 System.out.println(maxKey); // 3 System.out.println(minKey); // 1
HashMap 최대/최소 Value값 가져오기
-
Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 5); map.put(2, 70); map.put(3, 50); // Max Value Integer maxVal = Collections.max(map.value()); // Min Value Integer minVal = Collections.min(map.value()); // 결과 출력 System.out.println(maxVal); // 70 System.out.println(minVal); // 3
HashMap 최대/최소 Value기준 Key,Value 찾기
-
// HashMap 준비 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 5); map.put(2, 70); map.put(3, 50); // Comparator 정의 Comparator<Entry<Integer, Integer>> comparator = new Comparator<Entry<Integer, Integer>>() { @Override public int compare(Entry<Integer, Integer> e1, Entry<Integer, Integer> e2) { return e1.getValue().compareTo(e2.getValue()); } }; // Max Value의 key, value Entry<Integer, Integer> maxEntry = Collections.max(map.entrySet(), comparator); // Min Value의 key, value Entry<Integer, Integer> minEntry = Collections.min(map.entrySet(), comparator); // 결과 출력 System.out.println(maxEntry.getKey() + " : " + maxEntry.getValue()); // 2 : 70 System.out.println(minEntry.getKey() + " : " + minEntry.getValue()); // 1 : 5
프로그래머스 사이트에서 코딩테스트를 볼 경우, 개인의 IDE를 사용하지 못하는 경우가 있다.
자동 함수 어시스턴트가 없으므로, 알고 있는 문제여도 구현하는데 어려움을 겪는다.
위의 정리한 내용만큼은 최소한 암기하고 코테를 준비하자.
반응형
Comments