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
24 changes: 13 additions & 11 deletions src/yeji/BruteForce/src/BruteForce01.java
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import java.security.PermissionCollection;
import java.util.ArrayList;
import java.util.Arrays;

Expand All @@ -24,7 +25,6 @@ public static int[] solution(int[] answers) {
int[] pattern1 = {1, 2, 3, 4, 5};
int[] pattern2 = {2, 1, 2, 3, 2, 4, 2, 5};
int[] pattern3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int n = 0;

Person[] persons = new Person[3];
persons[0] = new Person(1, pattern1);
Expand All @@ -36,26 +36,28 @@ public static int[] solution(int[] answers) {
for (int i = 0; i < answers.length; i++) {
if (person.pattern[i % person.size] == answers[i]) {
person.count += 1;
System.out.println(p+":"+i+"번 정답");
}
}
if(persons[p].count != 0)
n++;
}

Arrays.sort(persons);

if(n==0) {
// 3명 다 0점
if(persons[0].count==persons[1].count && persons[0].count==persons[2].count) {
// 3명 다 동점
answer = new int[3];
answer[0] = 1;
answer[1] = 2;
answer[2] = 3;
}
else if(persons[0].count==persons[1].count){
// 최고점 2명
answer = new int[2];
answer[0] = persons[0].number;
answer[1] = persons[1].number;
}
else {
answer = new int[n];
Arrays.sort(persons);
for (int i = 0; i < n; i++) {
answer[i] = persons[i].number;
}
answer = new int[1];
answer[0] = persons[0].number;
}

return answer;
Expand Down
81 changes: 81 additions & 0 deletions src/yeji/BruteForce/src/BruteForce02.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import java.util.HashSet;

public class BruteForce02 {

static HashSet<Integer> numberSet = new HashSet<>();

//순열 찾기 함수
static void permutation(int[] arr, int depth, int n, int r) {
if(depth == r) {
print(arr, r);
return;
}

for(int i=depth; i<n; i++) {
swap(arr, depth, i);
permutation(arr, depth + 1, n, r);
swap(arr, depth, i);
}
}

static void swap(int[] arr, int depth, int i) {
int temp = arr[depth];
arr[depth] = arr[i];
arr[i] = temp;
}

public static void print(int[] nums, int r) {
String num = "";
for(int i=0;i<r;i++) {
num = num+ Integer.toString(nums[i]);
}
numberSet.add(Integer.parseInt(num));
}

public static boolean isPrime(int num) {
boolean result = true;
if(num <= 1)
result = false;

//num이 2일 경우 반복문을 돌지 않음 -> result = true
for (int i = 2; i < num; i++) {
if (num % i == 0) {
result = false;
break; //하나라도 1과 자기자신 외에 나눠지는 수가 있을경우 합성수이므로 반복문을 나감
}
}
return result;
}

public static int solution(String numbers) {
int answer = 0;

int[] nums = new int[numbers.length()];
for(int i=0;i<numbers.length();i++) {
nums[i] = Integer.parseInt(numbers.substring(i,i+1));
}

Comment on lines +54 to +57
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

numbers.split("");

이렇게 하면 한글자씩 띄울 수 있어용 ㅎㅎ

for(int i=1;i<=numbers.length();i++) {
permutation(nums,0, nums.length, i);
}

System.out.println(numberSet);

for(int num: numberSet) {
if(isPrime(num)) {
System.out.println(num);
answer++;
}
}

return answer;
}

public static void run() {
String numbers = "17";
//String numbers = "011";
//String numbers = "012";

System.out.println("answer = "+solution(numbers));
}
}