-
[알고리즘/JAVA] 문법 정리Algorithm 2024. 9. 18. 22:08
- 문자열 관련
String str = "abcde"; str.charAt(2) // 인덱스로 문자 찾기, c 반환 str.equals("abcde"); // str과 abcde를 비교해서 같으면 true, 다르면 false
- String.format
문자열 형식 설정할 때 사용
// 문자열 소수점 4째자리까지 형태일 때 String.format("%s %.4f%n", s, percentage);
// 시분초 HHMMSS 형식으로 포맷 (EX) 11시 01분 00초) for(int h = 0; h <= N; h++) { // 시 for(int m = 0; m <= 59; m++) { // 분 for(int s = 0; s <= 59; s++) { // 초 // 현재 시각을 HHMMSS 형식으로 포맷 String time = String.format("%02d%02d%02d", h, m, s); if(time.contains(K)) { count++; } } } }
- String과 StringBuilder의 차이 ??
• StringBuilder는 가변 객체이므로, 기존 객체를 그대로 사용하여 문자열을 수정할 수 있습니다.
• 문자열을 추가하거나 삭제하는 작업이 반복될 때마다 새로운 객체를 생성하지 않기 때문에, 성능이 뛰어나고 메모리 효율이 높습니다.
• 문자열을 반복적으로 수정하는 상황에서는 항상 String보다 StringBuilder가 더 효율적입니다.StringBuilder sb = new StringBuilder(); sb.append("abc") // 문자열 추가 // 문자열로 변환 sb.toString();
- StringTokenizer
공백(구분자)를 기준으로 문자열을 나눠준다.
StringTokenizer st = new StringTokenizer(br.readLine()); StringTokenizer.countTokens() // 현재 가지고있는 토큰의 개수를 반환
- 숫자 -> 문자열 변환
String.valueOf(); Integer.toString(); Long.toString();
- 숫자 변환
Integer.parseInt(); Long.parseLong();
- 정렬 관련 함수
Arrays.sort()는 1차원 배열에만 사용 가능하다
ArrayList<String> list = new ArrayList<>(); Collections.sort(list); -- 역순 정렬 관련 String[] str = Long.toString(n).split(""); Arrays.sort(str, Collections.reverseOrder());
- ArrayList 관련
ArrayList<String> list = new ArrayList<>(); list.get(0); // 0 위치의 값 반환
- Stack 관련
Stack<Integer> stack = new Stack<>(); stack.push(1); // stack에 1 삽입 stack.pop(); // 가장 위에 있는 값 삭제 stack.size(); // 크기 반환 stack.empty() // 비어있으면 true, 아니면 false stack.peek() // 가장 위에 있는 값 출력 (제거 X), 비어있으면 null 반환
- Queue 관련
Queue<Integer> queue = new LinkedList<>(); queue.add(1); // 큐에 1추가 queue.size(); // 큐 사이즈 queue.poll(); // 큐의 첫번째 값 반환(제거o) queue.peek(); // 큐의 첫번째 값 출력(제거x) queue.isEmpty(); // 비어있으면 true , 안 비어있으면 false
- PriorityQueue 우선순위 큐
우선순위 큐에 있는 원소들은 최솟값만 보장될 뿐 나머지 원소들이 순서대로 정렬되지는 않을 수 있다!
PriorityQueue<Integer> pq = new PriorityQueue<>(); pq.add(1); // pq.offer(1);과 동일 pq.poll(); // 최솟값 제거
높은 수가 우선이 되게 할 때는 아래와 같이 사용
// Collections.reverseOrder() 써서 높은 수가 우선이 되게 PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
- 가장 큰 수 / 가장 작은 수
int max = Integer.MAX_VALUE; int min = Integer.MIN_VALUE;
- HashMap
HashMap<Integer, String> hm = new HashMap<>(); hm.put(1, "안녕"); // 값 삽입 hm.get(1); // "안녕" 출력 hm.containsKey(1); // true hm.containsValue("안녕"); // true
- TreeMap
키값이 알파벳순(오름차순)으로 정렬된 상태로 출력
TreeMap<String, Integer> tm = new TreeMap<>();
- getOrDefault()
// getOrDefault 메소드 이용해 name이 한번 더 나오면 +1 아니면 기본값 0 삽입 tm.put(name, tm.getOrDefault(name, 0)+1);
- Entry
키, 값 둘 다 출력 필요할 때는 Entry 사용
for(Map.Entry<String, Integer> entry : tm.entrySet()) { String s = entry.getKey(); int num = entry.getValue(); }
- 문자가 숫자인지 확인하는 함수
Character.isDigit('a'); // false Character.isDigit('1'); // true
'Algorithm' 카테고리의 다른 글
[프로그래머스/JAVA] 네트워크 (0) 2024.10.05 [프로그래머스/JAVA] 타겟 넘버 (0) 2024.09.18 [프로그래머스/JAVA] 모음사전 (0) 2024.09.18 [프로그래머스/JAVA] 카펫 (0) 2024.09.18 [프로그래머스/JAVA] 소수찾기 (0) 2024.09.18