코딩테스트-알고리즘/문법 12

[오늘의 자바 문법] HashMap 정렬-2

이 문제를 풀며 알게 된 내용을 정리한 것이다 https://fruits2lim.tistory.com/entry/%EB%B0%B1%EC%A4%80-BOJSilver-V-1181%EB%B2%88-%EB%8B%A8%EC%96%B4-%EC%A0%95%EB%A0%AC [백준 BOJ/Silver V] 1181번 : 단어 정렬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주 fruits2lim.tistory.com HashMap value 기준 정렬 - key 값 기준 오름차순 정렬은 TreeMap으로 가능 - v..

[오늘의 자바 문법] HashMap 정렬 & 최대값/최소값 찾기

HashMap 정렬 - HashMap은 키 or 값으로 정렬되지 않기에 다른걸 이용해서 정렬해주어야함 1) TreeMap 이용 - TreeMap은 SortedMap 인터페이스를 상속받는 클래스이기 때문에 이를 이용해서 정렬해줄 수 있음 - 단, key를 정렬하는 경우에만 사용 가능 Map map = new HashMap(); // HashMap 구현 Map sortedMap = new TreeMap(map); // key 기준 오름차순 정렬 + comparator / stream 추가 예정 2) HashMap 최대값/최소값 - key 기준 Collections.max(map.keySet()); Collections.min(map.keySet()); - value 기준 Collections.max(map...

[오늘의 자바 문법] Map.Entry

https://fruits2lim.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4Lv1-%EC%99%84%EC%A3%BC%ED%95%98%EC%A7%80-%EB%AA%BB%ED%95%9C-%EC%84%A0%EC%88%98 [프로그래머스/Lv.1] 완주하지 못한 선수 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 fruits2lim.tistory.com 효율성테스트를 통과하지 못하면서 또 새로운 것을 공부하게 되었다 h..

[오늘의 자바 문법] Map - getOrDefault

getOrDefault(Object key, V DefaultValue) - key에 해당하는 value가 있다면 value 출력 - key에 해당하는 value가 없다면 DefaultValue 출력 예를 통해 더 알아보자 import java.util.HashMap; import java.util.Map; public class MapExample { public static void main(String[] args) { Map map = new HashMap(); map.put("A", 1); map.put("B", 2); map.put("C", 3); System.out.println(map.get("A")); System.out.println(map.getOrDefault("C", 0)); Sy..

오늘의 자바 문법

StringBuiffer 클래스를 이용한 문자열 뒤집기 StringBuffer sb = new StringBuffer(str); String reverse = sb.reverse().toString(); - StringBuffer 클래스는 생성자 파라미터로 문자열을 받을 수 있음 (문자열 저장) - StringBuffer 클래스의 reverse() 메서드 -> StringBuffer 에 저장되어있는 문자열을 뒤집어서 리턴함 -> StringBuffer 객체를 리턴하기 때문에 toString()을 이용하여 String으로 변환시켜줘야함 문자열을 char 배열로 변환 str.toCharArray(); 뮨자열 비교 시 - s == "A" -> 이런식으로 하지 않도록 주의하기!! 문자열 비교는 equals() ..

오늘의 자바 문법

BigInteger import java.math.BigInteger; BigInteger bigNumber = new BigInteger("숫자"); - BigInteger가 문자열로 되어있기 떄문에 초기화할때 문자열을 인자값으로 넘겨줘야함 BigInteger 계산 num1.add(num2); // 덧셈 num1.subtract(num2); // 뺼셈 num1.multiply(num2); // 곱셈 num1.divide(num2); // 나눗셈 num1.remainder(num2); // 나머지 * 두 수 비교 : num1.compareTo(num2); BigInteger 형 변환 num.intValue(); //BigIntger -> int num.longValue(); //BigIntger -> l..

오늘의 자바 문법 (ArrayList -> Array)

ArrayList -> Array ✔ String ArrayList -> String Array List list = new ArrayList(); String[] arr = list.toArray(new String[0]); ✔ Integer ArrayList -> Integer Array List list = new ArrayList(); Integer[] arr = list.toArray(new Integer[0]); - toArray(T[] a) : T 타입 배열을 반환. - T는 값 타입이 될 수 없기 때문에 int, double, float와 같은 타입의 배열은 이 방법으로는 얻을 수 없음 - 파라미터 a의 길이는 0으로 지정하면 알아서 list의 길이에 맞게 조정되어 arr에 저장됨 + Li..

오늘의 자바 문법

삼항연산자 중첨 사용 (조건식) ? 참 : (조건식) ? 참 : 거짓 ArrayList 최대, 최소 구하기 import java.util.*; Collections.max(list); Collections.min(list); ArrayList 특정 값 삭제 list.remove(int index) - 해당 index의 값이 삭제됨 list.remove(Object o) - 해당 값 중 첫번째 값 삭제 ex) list.remove(Integer.valueOf(1)) : 인덱스1값삭제(x) / 값이 1인거 삭제(1이 여러개라면 그 중 첫번째만 삭제) ArrayList 모든 값 삭제 list.clear() 문자열 뒤집기 - StringBuffer 클래스의 reverse() 메서드 사용 StringBuffer ..

오늘의 자바 문법

문자열을 배열로 변환 1. for문 이용 char[] arr = new char[str.length()]; for (int i = 0; i < str.length(); i++) { arr[i] = str.charAt(i); } 2. toCharArray() char[] arr = str.toCharArray(); char 비교 / String 비교 - char : ' ' - String: " " int형을 char형으로 int n = 1; char a = (char) (n + '0'); 해당 방식은 아스키코드를 이용해주는거라 int가 10을 넘으면 다른값이 나옴 string형을 int형으로 int n = Integer.parseInt(str);