자바 백준 2441번
브론즈 3
https://www.acmicpc.net/problem/2441
2441번: 별 찍기 - 4
첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
www.acmicpc.net
문제 보기

분류: 구현
문제 풀기
이전 문제인 별 찍기 2, 별 찍기 3 을 섞으면 4 를 해결할 수 있다.
https://xcevor.tistory.com/224
[Java] 백준 풀기 2439 - 별찍기 2
자바 백준 2439번 브론즈 4 https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참
xcevor.tistory.com
별 찍기 2 의 경우 오른쪽 정렬을 위해 외쪽 빈 공간을 추가하여 하나씩 제거하는 방법을 사용하였다.
https://xcevor.tistory.com/225
[Java] 백준 풀기 2440 - 별찍기 3
자바 백준 2440번 브론즈 4 https://www.acmicpc.net/problem/2440 2440번: 별 찍기 - 3 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 www.acmicpc.net 문제 보기 분류: 구현 문제 풀
xcevor.tistory.com
별 찍기 3 의 경우 내림 차순 형태를 만들기 위해 재귀 함수와 출력의 순서를 고려하여 모든 재귀 함수를 먼저 진입하게 한 뒤 return 에 의해 돌아 나오는 순간 별을 출력하게 작성하였다.
코드 보기
import java.util.Scanner; public class Main { public static Scanner sc = new Scanner(System.in); static int numStar = sc.nextInt(); public static void main(String[] args) { int count = 0; String star = " ".repeat(numStar); // 입력된 숫자만큼 빈 공간을 초기값으로 설정. fnRecursiveStar(count, star); } public static void fnRecursiveStar(int count, String star) { if (numStar == count) { return; } star = star.substring(1) + "*"; // 맨 앞 한자리를 지우기 위해 .substring(int) 을 이용하여 index 1 부터 마지막까지 가져온 후 "*" 를 맨 뒤에 추가. fnRecursiveStar(count + 1, star); // 재귀 함수를 스택 형태로 계속 진입하다가 base case 인 return 을 만나면 하나씩 빠져나옴. System.out.println(star); // 재귀 함수를 하나씩 빠져 나오면서 별을 출력 하는데 가장 별이 많은 재귀 함수를 먼저 나오면서 가장 많은 별을 먼저 출력함. } }
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 2475 - 검증수 (0) | 2023.01.28 |
---|---|
[Python] 백준 풀기 11723 - 집합 (0) | 2023.01.27 |
[Java] 백준 풀기 2440 - 별 찍기 3 (0) | 2023.01.25 |
[Java] 백준 풀기 2439 - 별 찍기 2 (0) | 2023.01.24 |
[Java] 백준 풀기 2438 - 별 찍기 1 (0) | 2023.01.24 |