1. 하드 코딩
package algo;
public class Divisor {
public static void main(String[] args) {
// 1~4까지 수 중 4의 약수는 "약수"라고, 아니면 "아님"이라고 출력하기
// 실제 문제는 1~100까지 이지만 1~4로 샘플링
// (약수가 무엇인지 비지니스 파악 혹은 공식 확인하기)
// 1. 1은 약수입니다.
System.out.println("1은 약수입니다.");
// 2. 2는 악수입니다.
System.out.println("2은 약수입니다.");
// 3. 3은 아님입니다.
System.out.println("3은 아님입니다.");
// 4. 4는 약수입니다.
System.out.println("4은 약수입니다.");
}
}
2. 변수 찾아 변경하기
package algo;
public class Divisor {
public static void main(String[] args) {
// 1~4까지 수 중 4의 약수는 "약수"라고, 아니면 "아님"이라고 출력하기
// 실제 문제는 1~100까지 이지만 1~4로 샘플링
// (약수가 무엇인지 비지니스 파악 혹은 공식 확인하기)
int a = 0;
String s = "";
// 1. 1은 약수입니다.
a++;
s = 4 % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s + "입니다.");
// 2. 2는 악수입니다.
a++;
s = 4 % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s + "입니다.");
// 3. 3은 아님입니다.
a++;
s = 4 % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s + "입니다.");
// 4. 4는 약수입니다.
a++;
s = 4 % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s + "입니다.");
}
}
3. 공통 모듈로 만들어 반복문을 반복
package algo;
public class Divisor {
public static void main(String[] args) {
// 1~4까지 수 중 4의 약수는 "약수"라고, 아니면 "아님"이라고 출력하기
// 실제 문제는 1~100까지 이지만 1~4로 샘플링
// (약수가 무엇인지 비지니스 파악 혹은 공식 확인하기)
int a = 0;
String s = "";
for (int i = 0; i < 4; i++) {
// 1. 1은 약수입니다.
a++;
s = 4 % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s + "입니다.");
}
}
}
4. 샘플링 끝났으니 문제 적용
package algo;
public class Divisor {
public static void main(String[] args) {
// 1~4까지 수 중 4의 약수는 "약수"라고, 아니면 "아님"이라고 출력하기
// 실제 문제는 1~100까지 이지만 1~4로 샘플링
// (약수가 무엇인지 비지니스 파악 혹은 공식 확인하기)
int a = 0;
String s = "";
for (int i = 0; i < 100; i++) {
// 1. 1은 약수입니다.
a++;
s = 100 % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s + "입니다.");
}
}
}
문제로 적용 하는 중 밑줄 친 부분을 수동적으로 바꿔줘야 하는 점을 발견
5. 위 문제점 고친 코드
package algo;
public class Divisor {
public static void main(String[] args) {
// 1~4까지 수 중 4의 약수는 "약수"라고, 아니면 "아님"이라고 출력하기
// 실제 문제는 1~100까지 이지만 1~4로 샘플링
// (약수가 무엇인지 비지니스 파악 혹은 공식 확인하기)
final int N = 100; // final은 바꿀 수 없는 변수 = 상수 (상수는 대문자로 시작)
int a = 0;
String s = "";
for (int i = 0; i < N; i++) {
// 1. 1은 약수입니다.
a++;
s = N % a == 0 ? "약수" : "아님";
System.out.println(a + "은 " + s + "입니다.");
}
}
}
해당 부분을 변수로 생각하여 만듬. 문제가 달라져도 N의 부분만 바꿔주면 여러 곳을 바꿀 필요가 없다.
결과

Share article