티스토리 뷰

알고리즘 문제 풀이

weird

딩신 2018. 7. 1. 22:46

문제 출처 - https://algospot.com/judge/problem/read/WEIRD


깃헙 주소 - https://github.com/Younkyu/weird



import java.util.ArrayList;
import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
//총 몇개의 숫자를 입력 받을 것인지
int count = 0;
int input = 0;
count = sc.nextInt();
int[] lst;

int sum = 0;
ArrayList<Integer> list = new ArrayList<>();



if (count > 0) {

for (int i = 0; i < count; i++) {
input = sc.nextInt();
list.clear();

sum = 0;

//약수 구하기
for (int z = 1; z < input; z++) {
if (input % z == 0) {
list.add(z);
sum = sum + z;
}
}

//배열로 변환
lst = new int[list.size()];
for (int c = 0; c < list.size(); c++) {
lst[c] = list.get(c);
}

//체크
if (input > sum || isWeirds(lst, lst.length - 1, 0, input)) {
System.out.println("not weird");
} else {
System.out.println("weird");
}
}
}
}

public static boolean isWeirds(int[] lst, int index, int sum, int input) {

// 합에서 하나씩 더해서 같으면 true 또는 더하다가 sum이 더 커지면 false 리턴
if (input == sum) {
return true;
} else if (input < sum || index == -1) {
return false;
} else {
return (isWeirds(lst, index - 1, sum + lst[index], input) || isWeirds(lst, index - 1, sum, input));
}
}
}


'알고리즘 문제 풀이 ' 카테고리의 다른 글

달팽이 그리기  (0) 2018.09.17
자연수의 합 / Division  (0) 2018.09.17
단지번호 붙이기  (0) 2018.09.17
백준 스택 수열 1874번  (0) 2018.07.03
XHAENEUNG - 똥 같은 코드  (0) 2018.01.29
DRAWRECT - 좌표 계산 문제  (0) 2018.01.27
Endians - n진법 표기 관련 문제  (0) 2018.01.25
algospot 문제 잘 풀기 시작  (0) 2018.01.25
댓글