Hayden's Archive

[알고리즘] 백준 2523번 : 별 찍기 - 13 / 백준 2446번 : 별 찍기 - 9 / 백준 10996번 : 별 찍기 - 21 본문

Algorithm

[알고리즘] 백준 2523번 : 별 찍기 - 13 / 백준 2446번 : 별 찍기 - 9 / 백준 10996번 : 별 찍기 - 21

_hayden 2020. 5. 31. 19:17

별 찍기는 그냥 규칙성 찾기와 반복문이 전부다. 규칙만 찾고 반복문 코드만 짜면 끝.  

 

알고리즘 문제 출처 : 백준 https://www.acmicpc.net/problem/2523

 

2523번: 별 찍기 - 13

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

 

내가 작성한 코드

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=0; i<n; i++) {
			for(int j=0; j<i+1; j++) {
				System.out.printf("*");
			}
			System.out.println();
		}
		for(int i=0; i<n-1; i++) {
			for(int j=i+1; j<n; j++) {
				System.out.printf("*");
			}
			System.out.println();
		}
	}
}

 


알고리즘 문제 출처 : 백준 https://www.acmicpc.net/problem/2446

 

2446번: 별 찍기 - 9

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

 

내가 작성한 코드

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=0; i<n; i++) {
			for(int j=0; j<i; j++) {
				System.out.printf(" ");
			}
			for(int j=2*(n-i)-1; j>0; j--) {
				System.out.printf("*");
			}
			System.out.println();
		}
		for(int i=0; i<n-1; i++) {
			for(int j=n-2; j>i; j--) {
				System.out.printf(" ");
			}
			for(int j=0; j<2*(i+2)-1; j++) {
				System.out.printf("*");
			}
			System.out.println();
		}
	}
}

 


알고리즘 문제 출처 : 백준 https://www.acmicpc.net/problem/10996

 

10996번: 별 찍기 - 21

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

 

내가 작성한 코드

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=0; i<n; i++) {
			for(int j=0; j<(n+1)/2; j++) {
				System.out.printf("* ");
			}
			System.out.println();
			for(int j=0; j<n/2; j++) {
				System.out.printf(" *");
			}
			System.out.println();
		}
	}
}

 


알고리즘 사이트 문제는 프로그래머스와 백준만 풀어봤는데 둘을 비교하자면 UI는 프로그래머스가 넘사벽이고 문제의 양과 유형의 다양성은 백준이 넘사벽 같다. 프로그래머스에서 문제를 풀다가 백준에서 문제를 풀려고 하니까 백준에서는 기본적인 형태와 입출력 양식까지 직접 작성해야 해서 작성해야 할 코드도 더 길고 귀찮은 부분이 많긴 함. 하지만 그럴수록 조금씩 코드 작성이 익숙해지고 조금씩 실력이 붙고 있는 것 같다.

 

현재 5단계까지 백준 알고리즘 문제 풀이 완료. 프로그래머스와 병행하면서 꾸준히 풀어야지.