반응형

원래 별찍기도 힘들어했는데 코드트리 덕분에 별찍기는 감을 잡았다!!!

프로그래밍 기초부분 06 다중 반복문 - 행에 대해 대칭인 별 출력 완료

 

문제 - 별표 출력하기 5

https://www.codetree.ai/missions/4/problems/print-star-5/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();  // 입력받은 n값

        for (int i = n; i >= 1; i--) {  // n부터 1까지 반복
            for (int j = 0; j < i; j++) {
                for (int k = 0; k < i; k++) {
                    System.out.print("*");  // 별 출력
                }
                if (j < i - 1) {
                    System.out.print(" ");  // 각 패턴 사이의 공백 출력
                }
            }
            System.out.println();  // 줄 바꿈
        }

        sc.close();
    }
}

 

반응형
반응형

https://www.codetree.ai/missions/4/problems/print-star-5/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        for (int i = n; i >= 1; i--) {  // n부터 1까지 반복
            for (int j = 0; j < i; j++) {
                for (int k = 0; k < i; k++) {
                    System.out.print("*");  // 별 출력
                }
                if (j < i - 1) {
                    System.out.print(" ");  // 각 패턴 사이의 공백 출력
                }
            }
            System.out.println();  // 줄 바꿈
        }

        sc.close();
    }
}

 

설명

for (int i = n; i >= 1; i--) {

- 이 반복문은 n부터 1까지 역순으로 반복합니다.

- i는 현재 줄에서 출력할 별의 개수와 반복 패턴의 수를 결정합니다.

- 예를 들어, n=4라면 첫 번째 줄에서는 4개의 패턴이 있고, 각 패턴에 4개의 별이 있습니다.

 

for (int j = 0; j < i; j++) {

- 이 반복문은 각 줄에서 몇 개의 패턴이 반복될지 결정합니다.

- i가 4일 때는 4개의 패턴이 출력되며, i가 3일 때는 3개의 패턴이 출력됩니다.

 

for (int k = 0; k < i; k++) {
    System.out.print("*");
}

- 이 반복문은 각 패턴에서 몇 개의 *가 출력될지를 결정합니다.

- i가 4이면 ****, i가 3이면 ***가 출력됩니다.

 

if (j < i - 1) {
    System.out.print(" ");
}

- 패턴과 패턴 사이에 공백을 추가합니다.

- j < i - 1 조건을 통해 마지막 패턴 뒤에는 공백이 출력되지 않도록 합니다.

- 예를 들어, i가 4일 때 **** **** **** ****로 출력되어야 하므로, 공백은 3개만 추가됩니다.

 

System.out.println();

- 각 줄의 출력이 끝나면 다음 줄로 넘어갑니다.

- 이 줄 바꿈이 없으면 모든 별이 한 줄에 연속으로 출력됩니다.

 

 

반응형
반응형

몸살 이슈로 일요일에 주차정리를 적는걸 놓쳤다...

 

프로그래밍 기초부분 05 단순 반복문 - 모두 만족하는 경우 완료

 

문제 - 소수 판별기

https://www.codetree.ai/missions/4/problems/prime-number-discriminator/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        boolean existed = false;

        for (int i = 2; i < n; i++) {
            if (n % i == 0) {
                existed = true;
            }
        }    

        if (existed) {
            System.out.println("C");
        } else {
            System.out.println("P");
        }
        
        sc.close();
    }
}
반응형
반응형

https://www.codetree.ai/missions/4/problems/divide-by-1/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int cnt = 0;

        for (int i = 1; ; i++) {
            n /= i;
            cnt++;

            if (n <= 1) {
                System.out.println(cnt);
                break;
            }
        }

        sc.close();
    }
}

 

설명

for (int i = 1; ; i++) {
            n /= i;
            cnt++;

            if (n <= 1) {
                System.out.println(cnt);
                break;
            }
}

- 어디까지 증가해야하는지 나오지 않았으므로 for문의 가운데는 비워놨다.

- 또, 몫을 계속 저장해둬야 하기에 'n /= i'를 통해 루프돌면서 저장하게 해뒀다.

- 그러면서 cnt로 갯수가 쌓이게 해주었다.

- if문으로 n(몫)이 1이하가 되었을때 cnt(횟수)를 출력해주고 break로 루프를 종료시키게 만들었다.

반응형
반응형

이번주는 난이도가 살짝 있던 문제들이 있어서 재밌었다.

3주차를 해보면서 그동안 느낀점은

다른 코테 연습 사이트보다 좋은점은 개념을 좀 더 정확히 알 수 있도록 비슷한 문제를 여러개 풀게 시켜준다.

조별과제가 끝나기 전까지 파이팅!

 

프로그래밍 기초부분 05 단순 반복문 - 반복문 안의 if 완료

 

문제 - 369 게임

https://www.codetree.ai/missions/4/problems/369-game/submissions

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

        for (int i = 1; i <= n; i++) {
            if (i % 3 == 0 || Include369(i)) {
                System.out.print(0 + " ");
            } else
                System.out.print(i + " ");
        }


        sc.close();
    }

    public static boolean Include369(int num) {
        boolean result = false;

        while (num != 0) {
            int digit = num % 10;
            if (digit == 3 || digit == 6 || digit == 9) {
                result = true;
                break;
            }
            num /= 10;
        }
        return result;
    }


}
반응형
반응형

https://www.codetree.ai/missions/4/problems/369-game/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

        for (int i = 1; i <= n; i++) {
            if (i % 3 == 0 || Include369(i)) {
                System.out.print(0 + " ");
            } else
                System.out.print(i + " ");
        }


        sc.close();
    }

    public static boolean Include369(int num) {
        boolean result = false;

        while (num != 0) {
            int digit = num % 10;
            if (digit == 3 || digit == 6 || digit == 9) {
                result = true;
                break;
            }
            num /= 10;
        }
        return result;
    }


}

 

설명

- 먼저 따로 만든 메소드부터 설명하겠습니다.

public static boolean Include369(int num) {
        boolean result = false;

        while (num != 0) {
            int digit = num % 10;
            if (digit == 3 || digit == 6 || digit == 9) {
                result = true;
                break;
            }
            num /= 10;
        }
        return result;
}

- '3, 6, 9'중에 하나라도 들어가있는지를 판별하는 메소드이다.

- 먼저 result를 false로 선언합니다. 거짓보다 참인 조건의 갯수가 적으니깐요!

- while문으로 'num != 0'을 한 이유는 나머지가 남지 않을때까지 돌리도록 하기 위함입니다.

- 10으로 나눈 나머지를 통해 '3, 6, 9'가 들어있는지 판별을 합니다.
- 점점 일의 자리, 10의 자리, 100의 자리를 판별합니다.

- 만약 나오면 result를 true로 값을 변환 후 break로 반복문을 빠져나옵니다.

 

for (int i = 1; i <= n; i++) {
            if (i % 3 == 0 || Include369(i)) {
                System.out.print(0 + " ");
            } else
                System.out.print(i + " ");
}

- 메소드에서 구한 참, 거짓인지와 i가 3의 배수인지를 판별!

 

반응형
반응형

https://www.codetree.ai/missions/4/problems/a-to-b/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();
        int result = 0;
        // a에서 시작해서 조건에 따라 커지다가 b보다 커지는 순간에 종료
        // 홀수->2배
        // 짝수->+3

        System.out.print(a + " ");
        for (int i = a; i <= b;) {
            if (i % 2 == 0)
                i += 3;
            else
                i *= 2;
            
            if (i <= b)
                System.out.print(i + " ");
        }  

        sc.close();
    }
}

 

 

설명

System.out.print(a + " ");

- 예를 들어 '2, 13'을 입력하면 조건에 따라 계산 후 '2 5 10 13'이 나와야 한다.

- 그런데 양쪽을 보니 a와 b의 값이 있다.

- 먼저 a는 그대로 출력을 해주고 나머지는 계산 후 하나씩 출력을 해줄것이다.

 

        for (int i = a; i <= b;) {
            if (i % 2 == 0)
                i += 3;
            else
                i *= 2;
            
            if (i <= b)
                System.out.print(i + " ");
        }

- a부터 b까지 돌도록 for문을 걸어준다

- 조건문으로 짝수일때는 3씩 증가시켜주고, 

  홀수일때는 2씩 곱해지도록 if문을 걸어준다.

- 그리고 이 코드대로라면 i가 증가된 상태로 출력이 되버리기 때문에

- 조건문으로 b를 넘지 않으면 출력하게 걸어준다.

반응형
반응형

https://www.codetree.ai/missions/4/problems/from-high-to-low/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();

        for (int i = Math.max(a, b); i >= Math.min(a, b); i--) {
            System.out.print(i + " ");
        }

        sc.close();
    }
}

 

반응형
반응형

https://www.codetree.ai/missions/4/problems/a-divide-b/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

코드

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.print(a / b + ".");
        
        a %= b;
        for(int i = 0; i < 20; i++) {
            a *= 10;
            System.out.print(a / b);
            a %= b;
        }
    }
}

 

설명

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.print(a / b + ".");

- 여기까지는 a를 b로 나눈 몫을 계산하고 소수점을 붙여 출력한다.

- 예를 들어, a가 5이고 b가 2라면 "2."가 출력된다.

 

        a %= b;
        
        for(int i = 0; i < 20; i++) {
            a *= 10;
            System.out.print(a / b);
            a %= b;
        }
    }
}

- 이 부분은 소수점 이하 자릿수를 계산한다.

 

1. a %= bab로 나눈 나머지를 계산합니다. 예를 들어, a가 5이고 b가 2라면 나머지는 1이 됩니다.

2. for 루프는 20번 반복됩니다. 이 루프는 소수점 이하 20자리까지 계산하는 역할을 합니다.

  • 각 반복에서 a10을 곱합니다. 이때의 a는 이전 단계에서 a % b로 남은 나머지입니다.

  • 곱한 값 a를 다시 b로 나누어 몫을 구하고, 이를 출력합니다.

  • 다시 a %= b를 통해 나머지를 계산하고, 이 과정을 반복합니다.

 

예를 들어, a가 1이고 b가 2인 경우를 봅시다:

 

첫 번째 반복: a = 1 * 10 = 10, 10 / 2 = 5, a = 10 % 2 = 0

이후 a가 0이 되므로 다음 반복에서는 항상 0을 출력합니다.

반응형
반응형

시험준비로 소흘한 알고리즘 공부를 했던 주차였다

 

프로그래밍 기초부분 04 조건문 완료

 

문제 - 정사각형의 넓이

https://www.codetree.ai/missions/4/problems/area-of-a-rectangle/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

        System.out.println(n * n);

        if (n < 5) {
            System.out.println("tiny");
        }

        sc.close();
    }
}
반응형

+ Recent posts