inblog logo
|
An's Blog
    알고리즘JAVA

    [JAVA-알고리즘] 3. 약수 구하기

    윤설안's avatar
    윤설안
    Feb 05, 2025
    [JAVA-알고리즘] 3. 약수 구하기
    Contents
    1. 하드 코딩2. 변수 찾아 변경하기3. 공통 모듈로 만들어 반복문을 반복4. 샘플링 끝났으니 문제 적용5. 위 문제점 고친 코드결과

    문제

    1~100까지의 숫자 중 4의 약수는 “약수”, 아니면 “아님” 출력하기

    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의 부분만 바꿔주면 여러 곳을 바꿀 필요가 없다.

    결과

    notion image
    Share article
    Contents
    1. 하드 코딩2. 변수 찾아 변경하기3. 공통 모듈로 만들어 반복문을 반복4. 샘플링 끝났으니 문제 적용5. 위 문제점 고친 코드결과

    An's Blog

    RSS·Powered by Inblog