diff --git a/docs/PROBLEM3.md b/docs/PROBLEM3.md index 7720d84555..573aee4fb1 100644 --- a/docs/PROBLEM3.md +++ b/docs/PROBLEM3.md @@ -14,3 +14,10 @@ | --- | --- | | 13 | 4 | | 33 | 14 | + +### 기능 구현 목록 + +- 데이터 유효성 검사 + - 0, 10000이상의 수, 소수가 들어가지 않는다. +- 숫자 number가 매개변수로 주어지는 기능. +- 1부터 매개변수까지 돌며 3, 6, 9의 개수를 count하여 횟수 리턴 기능. \ No newline at end of file diff --git a/docs/PROBLEM4.md b/docs/PROBLEM4.md index f2ff9edab0..228d43be1b 100644 --- a/docs/PROBLEM4.md +++ b/docs/PROBLEM4.md @@ -19,3 +19,10 @@ | word | result | | --- | --- | | "I love you" | "R olev blf" | + +### 기능 구현 목록 + +- 엄마 말씀 word가 매개변수로 주어질 때, 청개구리 사전을 참고해 반대로 변환하여 return +- word는 길이가 1 이상 1,000 이하인 문자열이다. +- 알파벳 외의 문자는 변환하지 않는다. +- 알파벳 대문자는 알파벳 대문자로, 알파벳 소문자는 알파벳 소문자로 변환한다. diff --git a/docs/PROBLEM5.md b/docs/PROBLEM5.md index e5a7372738..c58b28c6a5 100644 --- a/docs/PROBLEM5.md +++ b/docs/PROBLEM5.md @@ -13,4 +13,11 @@ | money | result | | --- | --- | | 50237 | [1, 0, 0, 0, 0, 2, 0, 3, 7] | -| 15000 | [0, 1, 1, 0, 0, 0, 0, 0, 0] | \ No newline at end of file +| 15000 | [0, 1, 1, 0, 0, 0, 0, 0, 0] | + + +### 기능 구현 목록 작성 + +- 돈의 단위 리스트 작성 +- moeny는 1 이상 1,000,000 이하인 자연수. +- 오만 원권, 만 원권, 오천 원권, 천 원권, 오백원 동전, 백원 동전, 오십원 동전, 십원 동전, 일원 동전을 가장 큰 단위부터 카운트 되는 기능. \ No newline at end of file diff --git a/src/main/java/onboarding/Problem1.java b/src/main/java/onboarding/Problem1.java index b99e6b5e67..63e6583dfd 100644 --- a/src/main/java/onboarding/Problem1.java +++ b/src/main/java/onboarding/Problem1.java @@ -1,10 +1,27 @@ package onboarding; import java.util.List; +import java.util.Map; +/** + * ☑️ 구현 기능 목록 작성 + * 1. 주어진 페이지 유효성 검사하는 기능. + * 1-1. 왼쪽 페이지가 홀수가 아니고 오른쪽 페이지가 짝수가 아닐 떄. + * 1-2. 페이지 번호가 1부터 시작되고 400페이지 까지 있다. + * 1-3. 배열 안에 원소가 2개가 아닐 때 체크 + * 1-4. 입력한 페이지가 한 페이지 차이가 아닐 때 -> 예외사항 이므로 -1 리턴 + * 1-5. 0 이하의 값을 입력할 경우 + * 2. 포비가 펼친 페이지의 숫자를 비교해 가장 큰 수를 구하는 기능. + * 3. 크롱이 펼친 페이지의 숫자를 비교해 가장 큰 수를 구하는 기능. + * 4. 포비와 크롱의 수를 비교하여 더 큰 사람 결정 하는 기능. + * 4-1. 포비가 이기면1 return + * 4-2. 크롱이 이기면2 return + * 4-3. 무승부면 0 return + */ class Problem1 { public static int solution(List pobi, List crong) { int answer = Integer.MAX_VALUE; return answer; } -} \ No newline at end of file +} + diff --git a/src/main/java/onboarding/Problem3.java b/src/main/java/onboarding/Problem3.java index 12e095d6e3..1aef3b3dea 100644 --- a/src/main/java/onboarding/Problem3.java +++ b/src/main/java/onboarding/Problem3.java @@ -1,8 +1,29 @@ package onboarding; + +import java.util.Scanner; + +/** + * ### 기능 구현 목록 + * - 데이터 유효성 검사 + * - 0, 10000이상의 자연수. + * - 숫자 number가 매개변수로 주어지는 기능. + * - 1부터 매개변수까지 돌며 3, 6, 9의 개수를 count하여 횟수 리턴 기능. + */ public class Problem3 { public static int solution(int number) { int answer = 0; + + for (int i = 1; i <= number; i++) { + int temp = i; + while (temp > 0) { + if (temp % 10 == 3 || temp % 10 == 6 || temp % 10 == 9){ + answer ++; + } + temp /= 10; + } + } return answer; + } } diff --git a/src/main/java/onboarding/Problem4.java b/src/main/java/onboarding/Problem4.java index 9bc4334fa9..d19f5d81d6 100644 --- a/src/main/java/onboarding/Problem4.java +++ b/src/main/java/onboarding/Problem4.java @@ -1,8 +1,18 @@ package onboarding; + public class Problem4 { public static String solution(String word) { String answer = ""; + for (char x : word.toCharArray()) { + if (x >= 65 && x <= 90) { + answer += (char)(155 -x); + } else if (x >= 97 && x <= 122) { + answer += (char)(219 -x); + }else { + answer += " "; + } + } return answer; } } diff --git a/src/main/java/onboarding/Problem5.java b/src/main/java/onboarding/Problem5.java index d6c4dbe09b..7d8376c838 100644 --- a/src/main/java/onboarding/Problem5.java +++ b/src/main/java/onboarding/Problem5.java @@ -1,11 +1,22 @@ package onboarding; +import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Problem5 { + private static final int[] unit = {50000, 10000, 5000, 1000, 500, 100, 50, 10, 1}; public static List solution(int money) { - List answer = Collections.emptyList(); + List answer = new ArrayList<>(Collections.emptyList()); + + for (int i = 0; i < unit.length; i++) { + if (money / unit[i] != 0) { + answer.add(money / unit[i]); + money = money % unit[i]; + } else if (money / unit[i] == 0) { + answer.add(0); + } + } return answer; } }