-
728x90
입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992
출처: https://plzrun.tistory.com/entry/알고리즘-문제풀이PS-시작하기 [plzrun's algorithm]문제
첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제
별은 가운데를 기준으로 대칭이어야 한다.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
출처
- 문제를 만든 사람: baekjoon
change Nxxxx -> Main && remove package lines!!!
이클립스에서 작성하면서 문제 이름으로 클래스를 생성하여 풀었기 때문에
클래스 이름을 Main으로 바꾸고, package 부분도 지우고 제출해야 정상적으로 돌아갑니다.
<첫 번째 풀이> - 오답
12345678910111213141516171819202122232425262728package io;public class N2442 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();for(int p=0; p<n; p++) {for(int q=0; q<n-p-1; q++){System.out.print(" ");}for(int q=0; q<2*p+1; q++){System.out.print("*");}for(int q=0; q<n-p-1; q++){System.out.print(" ");}System.out.println("");}}}위 코드로 작성하였으나 "출력 형식이 잘못되었습니다" 라는 에러메시지를 받았습니다.
알고 보니, 별이 찍히는 뒤에는 공백을 만들어주지 않아야 하기 때문이었습니다.
따라서 뒷 공백을 만들어주는
for(int q=0; q<n-p-1; q++){
System.out.print(" ");
}
코드를 삭제하고 제출했더니, 다행히 성공 표시를 받았습니다.
<두 번째 풀이>
1234567891011121314151617181920212223242526package io;public class N2442 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();for(int p=0; p<n; p++) {for(int q=0; q<n-p-1; q++){System.out.print(" ");}for(int q=0; q<2*p+1; q++){System.out.print("*");}System.out.println("");}}}ps) 개인적으로는 별 찍기 문제가 개념이 비슷한데도 빨리 풀이가 되지 않네요.(풀 때마다 10분 정도 소요...)
변수간의 관계에 익숙해지기에 별 찍기 문제가 많은 도움이 되는 것 같아 익숙해질때까지 반복 숙달이 필요할 것 같아요.
'Algorithms' 카테고리의 다른 글
[백준 알고리즘] (I/O) 2522번 Java 풀이 (0) 2020.03.09 [백준 알고리즘] (I/O) 2445번 Java 풀이 (0) 2020.03.08 [백준 알고리즘] (I/O) 2441번 Java 풀이 (0) 2020.03.07 [백준 알고리즘] (I/O) 2440번 Java 풀이 (0) 2020.03.06 [백준 알고리즘] (I/O) 2439번 Java 풀이 (0) 2020.03.06 댓글