Algorithm39 java - CountWays (in Dice ) /** * 주사위로 이동 가능한 경우의 수 모두 구하기 * N칸의 보드게임에서 1~6의 눈금이 있는 주사위를 굴려 갈수 있는 모든 경우의 수를 반환 하는 함수 구현 */ public static int countWays(int n){ if(n 2017. 5. 28. Java - fibonacci /** * f(0) = 0 종료 조건 * f(1) = 1 종료 조건 * f(n) = f(n-1) + f(n-2) */ public static int fibonacci(int n){ if(n==0) return 0; if(n==1) return 1; return fibonacci(n-1)+fibonacci(n-2); } 2017. 5. 28. Java - WordCount /** * 문서에서 특정 단어의 빈도수 구하기 * 문서는 단어별로 분리되어 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.. 2017. 5. 28. Java - Runlength 문자열 압축 /** * * 문자열 압축 하기 * aaaccg -> a3c2g */ public static String compressString(String s){ if(s == null) return null; char[] ca = s.toCharArray(); String result = ""; int count = 1; // 2번째 부터 루프를 시작 하기 위해 char prev = ca[0]; for(int i=1;i 2017. 5. 28. Java - 두 문자열이 Anagram 관계인가 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.. 2017. 5. 28. Java - UniqChar Implement public boolean isUniqChar(String str){ HashSet set = new HashSet(); for (char c : str.toCharArray()) { if(set.contains(c)) return false; set.add(c); } return true; } 2017. 5. 28. 이전 1 ··· 3 4 5 6 7 다음