Skip to content

Commit ebc23b4

Browse files
committed
Add basic Algorithm
1 parent 2829136 commit ebc23b4

File tree

5 files changed

+56
-8
lines changed

5 files changed

+56
-8
lines changed

src/test/java/algorithm/CharacterCompressWithLength.java renamed to src/test/java/algorithm/basic/CharacterCompressWithLength.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithm;
1+
package algorithm.basic;
22

33
import org.junit.Test;
44

@@ -30,11 +30,10 @@ private String RunLengthCompress_USE_HASHMAP(String str) {
3030
Map<Character, Integer> charCounter = new HashMap<>(str.length());
3131

3232
for (char c : str.toCharArray()) {
33-
if (charCounter.containsKey(c)) {
34-
charCounter.put(c, charCounter.get(c) + 1);
35-
} else {
36-
charCounter.put(c, 1);
33+
if (!charCounter.containsKey(c)) {
34+
charCounter.put(c, 0);
3735
}
36+
charCounter.put(c, charCounter.get(c) + 1);
3837
}
3938
StringBuilder sb = new StringBuilder();
4039
charCounter.forEach((chr, count) -> sb.append(chr + count.toString()));
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package algorithm.basic;
2+
3+
import org.junit.Test;
4+
5+
import java.util.Arrays;
6+
import java.util.HashMap;
7+
import java.util.Map;
8+
9+
import static org.hamcrest.CoreMatchers.is;
10+
import static org.junit.Assert.assertThat;
11+
12+
13+
public class FrequencyStringInDocument {
14+
15+
/*
16+
TASK
17+
주어진 문서(단어별로 나뉘어진 배열)에서 특정 단어의 빈도를 구한다.
18+
*/
19+
20+
@Test
21+
public void test() {
22+
String[] strArr = new String[100];
23+
assertThat(0, is(countStringInDocs(strArr, null)));
24+
strArr[0] = "jbee";
25+
assertThat(1, is(countStringInDocs(strArr, "jbee")));
26+
strArr[1] = "jbee";
27+
assertThat(2, is(countStringInDocs(strArr, "jbee")));
28+
strArr[2] = "jbee";
29+
assertThat(3, is(countStringInDocs(strArr, "jbee")));
30+
}
31+
32+
private int countStringInDocs(String[] strArr, String target) {
33+
if (strArr == null || target == null) return 0;
34+
35+
Map<String, Integer> countString = new HashMap<>();
36+
Arrays.stream(strArr).forEach(str -> {
37+
if (!countString.containsKey(str)) {
38+
countString.put(str, 0);
39+
}
40+
countString.put(str, countString.get(str) + 1);
41+
});
42+
43+
if (countString.get(target) == null) {
44+
return 0;
45+
}
46+
47+
return countString.get(target);
48+
}
49+
}

src/test/java/algorithm/IsAnagram.java renamed to src/test/java/algorithm/basic/IsAnagram.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithm;
1+
package algorithm.basic;
22

33
import org.junit.Test;
44

src/test/java/algorithm/StringParseToInt.java renamed to src/test/java/algorithm/basic/StringParseToInt.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithm;
1+
package algorithm.basic;
22

33
import org.junit.Test;
44

src/test/java/algorithm/UniqueCharacterInString.java renamed to src/test/java/algorithm/basic/UniqueCharacterInString.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package algorithm;
1+
package algorithm.basic;
22

33
import org.junit.Test;
44

0 commit comments

Comments
 (0)