본문 바로가기
Java

[백준] 2주차 2

by 리슈다 2023. 5. 19.

 반복문 7번부터 12번 문제

 

 

7) 문제 번호 11021 / A+B - 7

A+B가 왜이리 많아

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

EOF

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