Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 백준 2443
- node.js
- godotenv
- 깃허브 pull
- github pull
- C++ Fast I/O
- 깃허브 clone
- 깃허브 협업
- go 환경변수
- 람다 함수 이름 변경 안됨
- 깃허브
- C++
- 깃허브 코드 업로드
- 라우팅 연결하기
- aws lambda 함수
- lambda 이름 변경
- 팔로잉 끊기 구현
- 깃허브 복제
- GitHub 업로드
- go .env
- 출력형식 오류 해결
- 열혈 C++
- 백준 알고리즘
- 백준
- http 모듈
- Node.js교과서
- C++ 입출력
- 람다 함수 이름 변경
- node.js 교과서
- C++ 시간 초과
Archives
- Today
- Total
만능재주꾼
[백준 2443] 별찍기6 - JAVA (+출력형식이 잘못됐습니다 해결방법) 본문
✔️풀이
마지막 별이 찍히고 줄을 바꿔야 하므로 별이 어느 위치까지 찍혀야 하느냐가 중요하다
‼️ 각 줄의 마지막 별을 찍고 공백을 출력하는 것은 출력형식 오류에 해당하므로 마지막 별을 출력한 후 공백 출력 없이 바로 다음 줄로 넘어가야지 출력형식 오류를 해결할 수 있다 ‼️
전체 출력을 2n-1이라 봤을 때 출력해야 하는 공백은 n-i라 할 수 있다.
따라서 2n-1-(n-i) = n+i-1을 반복문의 조건문에 넣어주어야 올바른 출력 결과를 낼 수 있다
⚠️ 출력형식 오류였던 코드
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>0;i--){
for (int j=1;j<=2*n-1;j++){
if (j<=n-i || j>=n+i){
System.out.print(" ");
} else System.out.print("*");
}
System.out.println();
}
}
}
해당 코드에서 공백을 출력하는 if문 조건과 이중 for문 안쪽에 있는 반복문의 조건이 잘못되어 출력형식이 잘못되었다는 결과를 받았다.
✔️ 해결 코드
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>0;i--){
for (int j=1;j<=n+i-1;j++){
if (j<=n-i){
System.out.print(" ");
} else {
System.out.print("*");
}
}
System.out.println();
}
}
}
위의 코드에서 for문의 조건문을 별을 출력하는 범위까지로만 지정하고 if-else문을 통해 별과 공백을 출력한 뒤 for문에서 나오면 줄바꿈을 하도록 지정했다.
'💻 Algorithm > BOJ' 카테고리의 다른 글
[백준 1316] 그룹 단어 체커 - JAVA (0) | 2021.03.05 |
---|---|
[백준 8958] OX퀴즈 - JAVA (0) | 2021.01.04 |
[백준 2577] 숫자의 개수 - JAVA (0) | 2021.01.02 |
[백준 3052] 나머지 - JAVA (Vector 사용) (0) | 2020.12.31 |
[백준 1110] 더하기 사이클 - JAVA (do-while문 사용) (0) | 2020.12.28 |
Comments