Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions Programmers/wonjunYou/P140108.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package Programmers.wonjunYou;

public class P140108 {
public int solution(String s) {
int[] counter = initCounter();
char letter = s.charAt(0);
boolean doReset = false;

int result = 1;

for (int idx = 0; idx < s.length() - 1; idx++) {
if (doReset) {
counter = initCounter();
letter = s.charAt(idx);
doReset = false;
}

if (s.charAt(idx) == letter) {
counter[0] += 1;
} else {
counter[1] += 1;
}

if (checkCounter(counter)) {
result += 1;
doReset = true;
}
}

return result;
}

private boolean checkCounter(int[] counter) {
if (counter[0] == counter[1]) {
return true;
}

return false;
}

private int[] initCounter() {
return new int[] {0, 0};
}
}
28 changes: 28 additions & 0 deletions Programmers/wonjunYou/P148653.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package Programmers.wonjunYou;

public class P148653 {
int answer = Integer.MAX_VALUE;

public int solution(int storey) {
dfs(storey, 0);

return answer;
}

public void dfs(int storey, int count) {
if (count > answer) {
return;
}

if (storey == 0) {
answer = count;

} else {
int digit = storey % 10;

dfs(Math.round(storey / 10), count + digit);

dfs(Math.round(storey / 10) + 1, count + (10 - digit));
}
}
}
47 changes: 47 additions & 0 deletions Programmers/wonjunYou/P150370.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package Programmers.wonjunYou;

import java.util.*;

class P150370 {
public int[] solution(String today, String[] terms, String[] privacies) {
List<Integer> result = new ArrayList<>();

String[] todayInfo = today.split("\\.");
int year = Integer.parseInt(todayInfo[0]);
int month = Integer.parseInt(todayInfo[1]);
int day = Integer.parseInt(todayInfo[2]);

Map<String, Integer> termsInfo = parseTermsForMap(terms);

for (int i = 0; i < privacies.length; i++) {
String privacy = privacies[i];

String startDate = privacy.split(" ")[0];
int validDays = (termsInfo.get(privacy.split(" ")[1])) * 28;

int elapsedDate =
((year - Integer.parseInt(startDate.split("\\.")[0])) * 12 * 28) +
((month - Integer.parseInt(startDate.split("\\.")[1])) * 28) +
((day - Integer.parseInt(startDate.split("\\.")[2])));

if (elapsedDate >= validDays) {
result.add(i + 1);
}
}

return result.stream()
.mapToInt(i -> i)
.toArray();
}

public Map<String, Integer> parseTermsForMap(String[] terms) {
Map<String, Integer> termsInfo = new HashMap<String, Integer>();

for (String term : terms) {
String[] tmp = term.split(" ");
termsInfo.put(tmp[0], Integer.parseInt(tmp[1]));
}

return termsInfo;
}
}
20 changes: 20 additions & 0 deletions Programmers/wonjunYou/P161990.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package Programmers.wonjunYou;

public class P161990 {
public int[] solution(String[] wallpaper) {
int[] answer = {51, 51, -1, -1};

for (int i = 0; i < wallpaper.length; i++) {
for (int j = 0; j < wallpaper[i].length(); j++) {
if (wallpaper[i].charAt(j) == '#') {
answer[0] = Math.min(i, answer[0]);
answer[1] = Math.min(j, answer[1]);
answer[2] = Math.max(i + 1, answer[2]);
answer[3] = Math.max(j + 1, answer[3]);
}
}
}

return answer;
}
}
34 changes: 34 additions & 0 deletions Programmers/wonjunYou/P42576.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,38 @@
package Programmers.wonjunYou;

import java.util.HashMap;
import java.util.Map;

public class P42576 {
public String solution(String[] participant, String[] completion) {

Map<String, Integer> counter = new HashMap<>();

for (String member : participant) {
if (counter.containsKey(member)) {
// map.get(key);
// map.put(key, value);
int count = counter.get(member);
counter.put(member, count + 1);
} else {
counter.put(member, 1);
}
}

return findMemberGiveUp(counter, completion);
}

private String findMemberGiveUp(Map<String, Integer> counter, String[] completion) {
for (String member : completion) {
int count = counter.get(member);
counter.put(member, count - 1);
}

for (Map.Entry<String, Integer> entry : counter.entrySet()) {
if (entry.getValue() == 1) {
return entry.getKey();
}
}
return "";
}
}