Algorithm
-
Java - N 비트 경우의 수 출력Algorithm 2017. 5. 28. 14:24
public static void main(String[] args) { System.out.println(bitcomb(10)); } public static ArrayList bitcomb(int n){ return bitCombRec(n,"",new ArrayList()); } private static ArrayList bitCombRec(int n,String s,ArrayList list){ //s 가 n 비트이면 종료조건 if(n==s.length()) { list.add(s); return list; } bitCombRec(n,s+"0",list); bitCombRec(n,s+"1",list); return list; }
-
Java - WordCountAlgorithm 2017. 5. 28. 13:40
/** * 문서에서 특정 단어의 빈도수 구하기 * 문서는 단어별로 분리되어 String 배열로 입력 * 문서를 읽고 나면 여러 단어들의 빈도에 대해 자주 호출될수 있음 */ private HashMap map; public WordCount(){ map = new HashMap(); } public void read(String[] doc){ for(String word:doc){ //word 가 처음일 경우 if(!map.containsKey(word)) map.put(word,0); map.put(word,map.get(word)+1); } } public int getCount(String word){ //문서에 없는 단어일 경우 if(map.get(word) == null) return 0; re..
-
Java - 두 문자열이 Anagram 관계인가Algorithm 2017. 5. 28. 13:23
public static boolean isAnagram(String s1,String s2){ if(s1.length() != s2.length()) return false; HashMap hm = new HashMap(); //s1 for(char c:s1.toCharArray()){ // 이미 글자가 있을때 if(hm.containsKey(c)) hm.put(c,hm.get(c) + 1); else hm.put(c,1); } for(char c:s2.toCharArray()){ // 키가 없을 경우 -> s1 에는 포함되어있지만 s2에는 없다 라는것은 애너그램 관계가 아니다 if(!hm.containsKey(c)) return false; // 글자가 없을 경우 if(hm.get(c) == 0) r..
-
Java String Clsss methodAlgorithm 2017. 5. 28. 12:50
/** * length() : 문자열 길이 * equals(String s) : 다른 문ㄴ자열과 같은지 비교 * charAt(int i) : i 번째 글자 * toCharArray(): char[] 로 변환 * substring(int beginIndex,int endiIndex): 문자열 일부 잘라오기 * toUpperCase(): 모두 대문자로 변환 * replaceAll(String reg,String replacement): 특정 문자열 모두 교체 * split(String reg) : 주어진 글자로 잘라서 String[] 반환 * trim(): 문자열 앞뒤의 공백을 제거 */ String str1 = "Hello"; String str2 = "world!"; String str3 = "Hello..
-
Java 로 구현한 BSTreeAlgorithm 2013. 10. 30. 09:48
이원 탐색트리 : : 모든 원소는 상이한 키를 갖는다.: 왼쪽 서브트리에 있는 원소의 키들은 그 루트의 키보다 작다: 오른쪽 서브트리에 있는 원소의 키들은 그 루트의 키보다 크다: 왼쪽 서브트리와 오른쪽 서브트리도 모두 이원 탐색 트리이다. 노드의 구조 : | left | key | right| 탐색 : 찾으려는 키값을 x 라고 하자 키값보다 작으면 왼쪽을 탐색, 키값보다 크면 오른쪽을 탐색 삽입 : x 키값으로 가진 원소가 이미 있는 지 확인 , 키값이 있어야 하는 위치에 없으면 탐색을 종료하고 원소 삽입. package com.java.algo.woriworld;class TreeNode{String key;TreeNode left;TreeNode right;}class BinarySearchTree..