개발/JAVA 9

[JAVA] String.matches() vs String.contains()

알고리즘 문제를 풀다가 정규표현식 문제를 만났다. String.matches()를 사용해서 푸는 문제였는데 contains()와 무엇이 다를까? 둘다 공통점은 반환값이 특정 값이 문자열에 포함되어있으면 true 아니면 false를 반환한다는 점이다. String.matches() matches()는 인자로 정규표현식을 받는다. 만약에 인자로 정규표현식이 아닌 문자열이 온다면 '포함'이 아니라 '정확히' 일치해야 한다. public class MatchesTest{ public static void main(String[] args){ String str = "my java test"; //정규표현식 사용 안할때 정확히 일치해야 한다 System.out.println( str.matches("java") ..

개발/JAVA 2022.05.02

[JAVA] String.format을 이용한 문자열 형식 설정

프로그래머스 문제를 풀다가 String함수에 대한 것을 정리하고 익히기 위해 포스팅을 하기로 결심! String의 format 메서드는 문자열의 형식을 설정하는 메소드이다. 1. %d (10진수) 2. %s (문자열 형식) 3. %f (실수형 형식) 4. %t (날짜시간 형식) 5. %c (유니코드 문자 형식) 6. %o, %x(8진수, 16진수) 간단하게 10진수, 문자열, 실수형까지만 다뤄보겠다. 예시) 1. %d int i = 23; System.out.println(String.format("%d", i)); System.out.println(String.format("%5d", i)); System.out.println(String.format("%-5d", i)); System.out.prin..

개발/JAVA 2022.04.20

[자료구조] 인접행렬, 인접 리스트로 구현한 DFS, BFS

인접행렬로 구현 package Week10; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class 인접행렬_DFS_BFS { static boolean[] visited; static int [][] map; static int n; static int m; static int start; public static void main(String[] args) throws I..

개발/JAVA 2022.02.05

[JAVA] Comparable과 Comparator + 정렬

프로그래머스를 풀다가 Compare로 정렬을 하는 문제가 나왔다. 지금까지 정렬은 Arrays.sort()를 이용해서 했었는데 Compare를 이용해서 하니 원리가 이해가 가질 않아 정리하도록 하겠다. Comparable 과 Comparator compare을 학습하기에 앞서 위의 두 개념을 짚고 넘어가자. - Comparable과 Comparator는 모두 인터페이스(interface)이다. - 따라서 위의 인터페이스를 사용하려면 반드시 메소드를 구현해야한다. Comparable - Comparable 인터페이스에는 compareTo(T o) 메소드를 구현(override)해야한다. - 자기 자신과 매개변수 객체를 비교 - import 해줄 필요 없다. Comparator - Comparator 인터페..

개발/JAVA 2022.02.02

[JAVA] HashMap

HashMap HashMap은 Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있다. hasing 기법을 사용하기 때문에 많은 양의 데이터가 저장될 때 유용하고 검색에 최고성능을 보인다. Map Map은 키와 값을 저장하는 구조를 가지고 있는 자료구조이다. 키와 값은 모두 객체이다. 값은 중복 저장될 수 있지만 키는 중복 저장될 수 없다. 만약, 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치된다. HashMap 선언 HashMap hm = new HashMap(); HashMap 값 추가 HashMap hm = new HashMap(); hm.put("과일", "사과"); hm.put("가구", "냉장고"); HashMap에 선언했던 타입과 같은..

개발/JAVA 2022.01.07

[진법 변환] 2진수 <-> 8진수 변환

2진수 -> 8진수 변환 1. 2진수를 뒤에서 부터 3자리로 끊어준다. (세자리로 나누어지지않으면 0로 채워준다.) 11101 -> 011/101 2. 나눈 세자리를 10진수로 변환해준다. 011 -> 3 101 -> 5 3. 숫자를 연이어 써준다. 011101 -> 35(8) 8진수 -> 2진수 변환 8진수를 2진수로 변환하는 법은 앞서 말한 방법과 반대로 연이어 써준 숫자를 3자리씩 나눠 2진수로 변환해주면 된다. 1. 8진수를 각 자리씩 분리해준다. 35(8) -> 3 5 2. 각 자리를 2진수로 변환한다. 3=011 5=101 3. 변환해준 수를 연이어 써준다. 35 = 011101(2) 진법 변환에 관한 백준 문제 풀이 . . . https://www.acmicpc.net/problem/1373..

개발/JAVA 2022.01.03

[JAVA] List와 Hash의 차이점

알고리즘을 풀다보면 어쩔때는 ArrayList를 쓰고 또 HashSet을 쓸 때도 있다. 상황에 따라 다르게 쓰이기때문에 정리를 해보기로 했다. 컬렉션 프레임워크(Collection Framework) 구조 우선 간단하게 List와 Set의 공통점은 모두 동일한 타입의 데이터들을 저장할 때 사용한다. 둘의 차이점은 `LIst`는 중복을 허용하고 순서를 보장하며 데이터를 보관할 때 사용된다. `Set`은 중복을 허용하지 않고 순서가 중요하지 않은 데이터를 보관할 때 사용된다. import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class SetList { public s..

개발/JAVA 2021.12.20