set 4

[JAVA] 프로그래머스 폰켓몬

HashSet을 이용해 중복제거하는 문제이다. 처음 문제를 봤을때 dfs combination 문제인줄 알고 dfs로 모두 구했더니 시간초과가 발생했다. 다시 생각해보니 nums.length/2 미만인경우 아니라면 최대한 많이뽑아도 nums.length/2개이니 해당 값을 return해주면 되는 간단한 문제였다. if문을 할때 종이로 쓰는 습관을 들여야겠다. import java.util.HashSet; import java.util.Set; class Solution { static int[] result; static int max=0; public int solution(int[] nums) { int answer = 0; result = new int[nums.length/2]; Set s = n..

(2020카카오) 튜플 Java

각 문자열에 대하여 숫자를 추출해서 넣는다 각 숫자에 대하여 몇번 나왔는지 카운팅 해서 카운트가 높을수록 먼저 출력된다(우선순위 上) 그래서 떠오른 것이 Map, Set을 이용하여 각 문자열("111" , "22")에 대하여 Integer로 카운팅한값을 묶어서 증가시키는 방법으로 진행하였다. import java.util.*; class Solution { public int[] solution(String s) { Map map = new HashMap(); String numStr = ""; for (int i = 2; i < s.length(); i++) {//0번째랑 마지막 괄호 제외 if(s.charAt(i) == '{' || s.charAt(i) == '}' || s.charAt(i) == '..

List, Map,Set 정리

//맵 : key, value Map map = new HashMap(); //셋 HashSet hash = new HashSet(); 인터페이스 구현 클래스 특징 List LinkedList Stack Vector ArrayList 순서가 있는 데이터의 집합, 데이터의 중복을 허용함 Set HashSet TreeSet 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않음 Map HashMap TreeMap HashTable Properties 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합 순서는 유지되지 않고, 키는 중복을 허용하지 않으며 값의 중복을 허용함 ArrayList의 특징 동기화를 보장해주지 않는다. 배열에 동적 메모리 증가 기능을 구현한 클래스이다. 동기화 지..

[JAVA] 완전탐색 "소수 찾기"

완전탐색을 이용하여 소수를 찾는 알고리즘이다. 이전에 String을 parseInt하는 부분도 포함되어있는 문제다. 그리고, Permutation순열을 이용하여 수학적으로 재귀탐색을 하는 방식이며, Set을 이용하여 중복 제거를 하는 방식으로 알고리즘을 풀어야 했다. 필자는 Permutation부분을 스스로 구현하기 어려워 다른 이의 코드를 참고하였다. codevang.tistory.com/299?category=827588 import java.util.ArrayList; import java.util.List; import java.util.TreeSet; class Solution { private static TreeSet set = new TreeSet(); private int count; p..