1 분 소요

백준 실습

별찍기 - 1

image-20240622190659999

image-20240622190715376

해당 문제는 2중 for 문으로

첫째줄에는 몇번을 반복한건지

두번째 줄에는 별을 몇번 반복할건지 쓰면된다.

처음에는 for문에다가

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

이와 같은 방법을 썻는데 잠시 생각하니 2중 for문이 생각나 시도 해보았는데 성했다.

Scanner sc = new Scanner(System.in);
		
		int a;
		a = sc.nextInt();
		
		for(int i = 1; i <= a; i++) {
			for(int j =1; j <=i; j++) {
				System.out.print("*");
				
			}
			System.out.println();
		}

윤년

image-20240622195137199

image-20240622195145166

n수의 배수를 구하는 문제 있데

처음에는 어떻게 풀지 몰라서 for 문을써야 하나 싶었지만

그게아니라 그양 if문에다가 %로 조건문만 걸면 되는거였다.

처음 조건문

if(a % 4 == 0 && a % 100 != 0 && a % 400 == 0) {
			System.out.println("1");
		}else
			System.err.println("0asda");

해당 조건문은 계속 false가 나왔다.

이유는

연도가 400의 배수인 경우 true.

연도가 4의 배수이면서 100의 배수가 아닌 경우 true.

이렇게 만들어야하는데

4의 배수이면서 100의 배수가 아니고 400의 배수 라고 조건을 주었기 때문이다.

수정된 코드

Scanner sc = new Scanner(System.in);
		int a;
		a = sc.nextInt();
		
		if((a % 4 == 0 && a % 100 != 0) || a % 400 == 0) {
			System.out.println("1");
		}else
			System.out.println("0");

별 찍기 -2

image-20240622202149974

image-20240622202155921

해당 문제는 시간이 조금 걸렸다

첫시도는 String값에다가 i 를 곱하면 될줄알았지만

(int * String)

절대 안된다.

Scanner sc = new Scanner(System.in);
		
		int a;
		a = sc.nextInt();
		
		
		for(int i = 1; i <= a; i++) {
			for(int j = 1; j <= a; j++) {
				System.out.print(" ");
			}
			for(int k = 1; k <=i; k++) {
				System.out.print("*");
			}
			System.out.println();
		}

해당 코드로 실행시켜봤지

​ *

​ **

​ ***

​ **


해당 결과로 5칸이 띄어지고 시작만 했지

원하는 결과값을 얻지는 못했다.

이후

Scanner sc = new Scanner(System.in);
		
		int a;
		a = sc.nextInt();
		
		
		for(int i = 1; i <= a; i++) {
			for(int j = 1; j <= a - i; j++) {
				System.out.print(" ");
			}
			for(int k = 1; k <=i; k++) {
				System.out.print("*");
			}
			System.out.println();
		}

j가 포함된 for문에 a -i를 주어

5 - (반복된 수) 를 이용하여

원하는 값을 출력하였다

댓글남기기