From 1c7310d5960e40026690c12e73757b045b667704 Mon Sep 17 00:00:00 2001 From: dayaelee Date: Tue, 3 Sep 2024 13:40:37 +0900 Subject: [PATCH 1/7] Feat: Problem1 --- src/main/java/onboarding/Problem1.java | 83 ++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/src/main/java/onboarding/Problem1.java b/src/main/java/onboarding/Problem1.java index b99e6b5e67..1c736e2211 100644 --- a/src/main/java/onboarding/Problem1.java +++ b/src/main/java/onboarding/Problem1.java @@ -5,6 +5,89 @@ class Problem1 { public static int solution(List pobi, List crong) { int answer = Integer.MAX_VALUE; + + String pleft = String.valueOf(pobi.get(0)); + String pright = String.valueOf(pobi.get(1)); + + int pleftNum = Integer.parseInt(pleft); // pleft를 int로 변환 + int prightNum = Integer.parseInt(pright); // pright를 int로 변환 + + if (pleftNum+1 != prightNum){ + answer = -1; + return answer; + } + + int lsum = 0; + for (int i = 0; i < pleft.length(); i++){ + char ch = pleft.charAt(i); + lsum += Character.getNumericValue(ch); + } + int lmulti = 1; + for (int i = 0; i < pleft.length(); i++){ + char ch = pleft.charAt(i); + lmulti *= Character.getNumericValue(ch); + } + + int rsum = 0; + for (int i = 0; i < pright.length(); i++){ + char ch = pright.charAt(i); + rsum += Character.getNumericValue(ch); + } + + int rmulti = 1; + for (int i = 0; i < pright.length(); i++){ + char ch = pright.charAt(i); + rmulti *= Character.getNumericValue(ch); + } + + int pmaxValue = Math.max(Math.max(lsum, lmulti), Math.max(rsum, rmulti)); + + String cleft = String.valueOf(crong.get(0)); + String cright = String.valueOf(crong.get(1)); + + int cleftNum = Integer.parseInt(cleft); // pleft를 int로 변환 + int crightNum = Integer.parseInt(cright); // pright를 int로 변환 + + if (cleftNum+1 != crightNum){ + answer = -1; + return answer; + } + + int clsum = 0; + for (int i = 0; i < cleft.length(); i++){ + char ch = cleft.charAt(i); + clsum += Character.getNumericValue(ch); + } + int clmulti = 1; + for (int i = 0; i < cleft.length(); i++){ + char ch = cleft.charAt(i); + clmulti *= Character.getNumericValue(ch); + } + + int crsum = 0; + for (int i = 0; i < cright.length(); i++){ + char ch = cright.charAt(i); + crsum += Character.getNumericValue(ch); + } + + int crmulti = 1; + for (int i = 0; i < cright.length(); i++){ + char ch = cright.charAt(i); + crmulti *= Character.getNumericValue(ch); + } + + int cmaxValue = Math.max(Math.max(clsum, clmulti), Math.max(crsum, crmulti)); + + System.out.println("pmaxValue"+ pmaxValue+ "cmaxValue"+ cmaxValue); + + if (pmaxValue > cmaxValue){ + answer = 1; + } else if (pmaxValue < cmaxValue) { + answer = 2; + } else { + answer = 0; + } + return answer; } } \ No newline at end of file From 2aa4676cbd8b570293608c3ed7a1e5101d24131c Mon Sep 17 00:00:00 2001 From: dayaelee Date: Tue, 3 Sep 2024 15:41:06 +0900 Subject: [PATCH 2/7] Feat: Problem2 --- src/main/java/onboarding/Problem2.java | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/main/java/onboarding/Problem2.java b/src/main/java/onboarding/Problem2.java index ee836e9cac..3264ef7cce 100644 --- a/src/main/java/onboarding/Problem2.java +++ b/src/main/java/onboarding/Problem2.java @@ -3,6 +3,46 @@ public class Problem2 { public static String solution(String cryptogram) { String answer = "answer"; + String tmp =""; + while (true) { + int rememberIndex = 0; + int check = 0; + + if (cryptogram.isEmpty()){ + break; + } + + for (int i = 0; i < cryptogram.length(); i++) { + if (i == cryptogram.length() - 1) { + break; + } + char target = cryptogram.charAt(i); + + if (target == cryptogram.charAt(i + 1)) { + check = 1; + rememberIndex = i; + break; + } + } + + if (check == 1) { + tmp=""; + for (int i = 0, j = 0; i < cryptogram.length(); i++) { + if (i != rememberIndex && i != (rememberIndex+1)) { + tmp = tmp + cryptogram.charAt(i); + } + } + + cryptogram=tmp; + + }else{ + break; + } + + check = 0; + } + answer = tmp; + return answer; } } From c0ef3d6edd2d324f07f7fe0e24d6f5cfecd952b3 Mon Sep 17 00:00:00 2001 From: dayaelee Date: Tue, 3 Sep 2024 15:54:13 +0900 Subject: [PATCH 3/7] Feat: Problem3 --- src/main/java/onboarding/Problem3.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/onboarding/Problem3.java b/src/main/java/onboarding/Problem3.java index 12e095d6e3..8c4f8d10e8 100644 --- a/src/main/java/onboarding/Problem3.java +++ b/src/main/java/onboarding/Problem3.java @@ -3,6 +3,15 @@ public class Problem3 { public static int solution(int number) { int answer = 0; + + for (int i = 1; i <= number; i++){ + String str = String.valueOf(i); + for (int j = 0; j < str.length(); j++){ + if (str.charAt(j)=='3' || str.charAt(j)=='6' || str.charAt(j)=='9'){ + answer+=1; + } + } + } return answer; } } From d22a923f2367d9fc92c69da3aae19d33e3ca336a Mon Sep 17 00:00:00 2001 From: dayaelee Date: Tue, 3 Sep 2024 16:16:23 +0900 Subject: [PATCH 4/7] Feat: Problem4 --- src/main/java/onboarding/Problem4.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/onboarding/Problem4.java b/src/main/java/onboarding/Problem4.java index 9bc4334fa9..a24689d369 100644 --- a/src/main/java/onboarding/Problem4.java +++ b/src/main/java/onboarding/Problem4.java @@ -3,6 +3,22 @@ public class Problem4 { public static String solution(String word) { String answer = ""; + + for (int i = 0; i < word.length(); i++){ + + int target = (int)word.charAt(i); + if (target>=65 && target<=90){ + int subvar = target-65; + int result = 90-subvar; + answer += (char)result; + } else if (target>=97 && target<=122) { + int subvar = target-97; + int result = 122-subvar; + answer += (char)result; + } else{ + answer +=(char)target; + } + } return answer; } } From 01c5381b389112aaf2cd05d85f1077878ddbc91b Mon Sep 17 00:00:00 2001 From: dayaelee Date: Tue, 3 Sep 2024 16:33:16 +0900 Subject: [PATCH 5/7] Feat: Problem5 --- src/main/java/onboarding/Problem5.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/onboarding/Problem5.java b/src/main/java/onboarding/Problem5.java index d6c4dbe09b..29a07d87a9 100644 --- a/src/main/java/onboarding/Problem5.java +++ b/src/main/java/onboarding/Problem5.java @@ -1,11 +1,24 @@ package onboarding; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; public class Problem5 { public static List solution(int money) { - List answer = Collections.emptyList(); + List answer = new ArrayList<>(); + List list = Arrays.asList(50000, 10000, 5000, 1000, 500, 100, 50, 10, 1); + + for (int i = 0; i=list.get(i)){ + answer.add(money/list.get(i)); + money= money%list.get(i); + }else { + answer.add(0); + } + } + return answer; } } From 11f61c867b906a8c5056457b070c49ec50ebee71 Mon Sep 17 00:00:00 2001 From: dayaelee Date: Tue, 3 Sep 2024 17:08:37 +0900 Subject: [PATCH 6/7] Feat: Problem6 --- src/main/java/onboarding/Problem6.java | 52 +++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/src/main/java/onboarding/Problem6.java b/src/main/java/onboarding/Problem6.java index f6c7b32344..c180bd3248 100644 --- a/src/main/java/onboarding/Problem6.java +++ b/src/main/java/onboarding/Problem6.java @@ -1,10 +1,58 @@ package onboarding; -import java.util.List; +import java.util.*; public class Problem6 { public static List solution(List> forms) { - List answer = List.of("answer"); + List answer = new ArrayList<>(); + + // 일단 forms 순회 - 타겟 선정 + for (int i = 0; i target = forms.get(i); + int targetIndex = i; + + // 선정한 타겟의 두글자 순회 + String targetStr = target.get(1); + for (int t = 0; t target2 = forms.get(j); + String targetStr2 = target2.get(1); + // 비교할 새로운 두글자 생성 + int check = 0; + for (int tt = 0; tt set = new HashSet<>(answer); + answer = new ArrayList<>(set); + return answer; } } From 39f388edabb6714f09926cffe098a6fe9992d784 Mon Sep 17 00:00:00 2001 From: dayaelee Date: Tue, 3 Sep 2024 18:12:27 +0900 Subject: [PATCH 7/7] Feat: Problem7 --- src/main/java/onboarding/Problem7.java | 95 +++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 3 deletions(-) diff --git a/src/main/java/onboarding/Problem7.java b/src/main/java/onboarding/Problem7.java index 365540f5cd..4395240013 100644 --- a/src/main/java/onboarding/Problem7.java +++ b/src/main/java/onboarding/Problem7.java @@ -1,11 +1,100 @@ package onboarding; -import java.util.Collections; -import java.util.List; +import java.util.*; public class Problem7 { public static List solution(String user, List> friends, List visitors) { - List answer = Collections.emptyList(); + + Map map = new TreeMap<>(); + + // user의 친구리스트 생성 + List list = new ArrayList<>(); + + for(int i = 0; i< friends.size(); i++){ + List target = friends.get(i); + String target1 = target.get(0); + String target2 = target.get(1); + if (target1.equals(user)){ + list.add(target2); + } else if (target2.equals(user)){ + list.add(target1); + } + } + + + // 친구의 친구 조회후 값 추가 + for(int j = 0; j target = friends.get(jj); + String target1 = target.get(0); + String target2 = target.get(1); + + if (list.get(j).equals(target1)) { + if (map.containsKey(target2)) { + int tmpV = map.get(target2); + tmpV += 10; + map.put(target2, tmpV); + } else { + map.put(target2, 10); + } + } else if (list.get(j).equals(target2)) { + if (map.containsKey(target1)) { + int tmpV = map.get(target1); + tmpV += 10; + map.put(target1, tmpV); + } else { + map.put(target1, 10); + } + } + } + } + + for(int v = 0; v> entryList = new ArrayList<>(map.entrySet()); + + entryList.sort((entry1, entry2) -> { + int valueComparison = entry2.getValue().compareTo(entry1.getValue()); + if (valueComparison == 0){ + return entry1.getKey().compareTo(entry2.getKey()); + } else{ + return valueComparison; + } + }); + + Map sortedMap = new LinkedHashMap<>(); + for (Map.Entry entry : entryList) { + sortedMap.put(entry.getKey(), entry.getValue()); + } + + List answer = new ArrayList<>(sortedMap.keySet()); + return answer; } }