반복문 7번부터 12번 문제
7) 문제 번호 11021 / A+B - 7
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for(int i = 1; i <= n; i++){
int a = scanner.nextInt();
int b = scanner.nextInt();
System.out.println("Case #" + i + ": " + (a+b));
}
}
}
이 문제는 문제 이해를 잘못해서 틀린 문제... 문제에선 수 2개 입력 받고 바로 출력하는 건데 난 한 번에 입력 다 받고 또 한 번에 다 출력하는 줄 알고 System.out.println을 for문 밖에 쓰다가 계속 틀렸네.. 문제 잘 읽어보자
8) 문제 번호 11022 / A+B - 8
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for(int i = 1; i <= n; i++){
int a = scanner.nextInt();
int b = scanner.nextInt();
System.out.println("Case #" + i + ": " + a + " + " + b + " = " + (a+b));
}
}
}
A+B - 7과 똑같은데 이건 입력 받은 수도 출력해주는 문제
9) 문제 번호 2438 / 별 찍기 - 1
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for(int i = 1; i <= n; i++){
for(int j = 0; j < i; j++){
System.out.print("*");
}
System.out.println();
}
}
}
처음 생각한게 for문을 하나만 쓰고 System.out.println으로 * 출력할 때 i횟수만큼 곱하면 안되나? 했는데 안되더라. GPT한테 물어봤는데 자바에서는 '*' 연산자를 문자열과 숫자 사이에 사용할 수 없다고는 하는데.. 연산자 공부좀 해야겠다. 개념부터 알고 풀어야 더 이해도 잘 되고 실력도 늘겠지.
10) 문제 번호 2439 / 별 찍기 - 2
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for(int i = 1; i <= n; i++){
for(int j = 0; j < n - i; j++){
System.out.print(" ");
}
for(int k = 0; k < i; k++){
System.out.print("*");
}
System.out.println();
}
}
}
이 문제는 위 문제처럼 별을 찍긴 하는데 우측 정렬을 해야 한다. 우측 정렬을 알아서 해주는 출력문이 있는진 모르겠지만 내가 한 건 n개의 숫자를 입력 받았을 때 첫 출력은 공백 n-1개와 별 1개, 두번 째 출력은 공백 n-2개와 별 2개, 이렇게 진행하다가 공백 0개와 별n개로 출력되길래 이에 맞춰서 for문 작성했더니 맞았다.
11) 문제 번호 10952 / A+B - 5
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
for( ; ;){
int a = scanner.nextInt();
int b = scanner.nextInt();
if(a == 0 && b ==0)
break;
System.out.println(a+b);
}
}
}
두 정수 A, B를 입력 받고 합을 출력하는데 둘 다 0이 입력되면 끝나도록 했다. 출제 의도가 이 답이 맞는지 모르겠네..
12) 문제 번호 10951 / A+B - 4
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextInt()){
int a = scanner.nextInt();
int b = scanner.nextInt();
System.out.println(a+b);
}
}
}
이 문제는 'EOF'를 알아보는 문제였다.
EOF(End Of File)란, 파일의 끝. 즉 더 이상 읽을 데이터가 없다는 뜻으로 입력값의 크기가 정해지진 않았을 때 주로 사용한다. Scanner 클래스에서의 EOF 사용 방법은 아래의 블로그를 참고하였다. while문 안에 hasNextInt() 메소드를 사용했다.
https://steady-coding.tistory.com/227
EOF의 사용 방법을 알아보자 (JAVA)
안녕하세요? 코딩중독입니다. 저번 시간에는 입출력의 속도를 빠르게 해 주는 BufferedReader와 BufferedWriter에 대해 알아보았습니다. 이번에는 EOF가 무엇인지 알아봅시다. EOF는 무엇일까? EOF는 End of F
steady-coding.tistory.com
'Java' 카테고리의 다른 글
[백준] 코딩테스트 문제 10810 : 공 넣기 (0) | 2023.06.26 |
---|---|
[백준] 3주차 1 (0) | 2023.05.27 |
[백준] 2주차 1 (1) | 2023.05.19 |
[백준] 1주차 4 (1) | 2023.05.14 |
[백준] 1주차 3 (0) | 2023.05.14 |