ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준 알고리즘] 11021번: A+B - 7 (Java: for문)
    Algorithm 2021. 7. 18. 15:11

    [문제]

    두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

     

    [간략한 풀이]

    첫째 줄에 테스트 케이스의 개수 T가 주어진다.

    각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

     

    [알고리즘 분류]

    수학, 구현, 사칙연산

     

    [제출한 코드]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import java.util.Scanner;
     
    public class Main {
     
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);    
            int T = sc.nextInt();
            
            for(int i = 1; i <= T; i++) {
                    int A = sc.nextInt();
                    int B = sc.nextInt();
                    
                    System.out.println("Case #" + i + ": " + (A+B));
            }
     
        }
        
    }
     
     
    cs

    -> 아래 오답들에 이유가 있었다.

    (1) 마지막 출력문에서 : 띄어쓰기(공백)이 필요했는데, 꼼꼼하지 못하여 해당 부분을 뒤늦게 확인했다. ㅠㅠ 결국 Scanner를 사용하여 정답 인정은 받았지만. 그래도 오류는 알았으니까... ㅎ

    (2) 정수 입력 받고 그 다음줄에 이어서 답이 출력되어야 하는데, 나는 테스트 갯수 입력 받고 그 다음 정수들만 입력 받은 후 출력문이 마지막에 한 번에 나와야하는줄 알았다. 또륵

    -> 사실 이 부분이 오류인줄 알았는데 한줄씩 출력하던 마지막에 한 번에 결과를 출력하던 상관 없었음!

     

    ==================

    오답 1

    - Scanner 를 쓸까하다가 BufferedReader를 사용하여 작성하였다. 

    하나씩 받은 A, B를 각각 배열의 0번째 1번째에 담아 더했다.

    출력은 정답과 똑같이 되는데 백준에 제출하면 오답으로 나온다. 이유를 찾지 못해 일단 기록!

    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
    29
    30
    31
    32
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.StringTokenizer;
     
    public class Main {
     
        public static void main(String[] args) throws IOException {
            
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            
            int T = Integer.parseInt(br.readLine());
            for(int i=1; i<=T; i++) {
                    StringTokenizer st = new StringTokenizer(br.readLine(), " ");    
                    int A = Integer.parseInt(st.nextToken());
                    int B = Integer.parseInt(st.nextToken());
                    
                    int ary[] = new int[2];
                    ary[0= A;
                    ary[1= B;
                    
                    bw.write("Case #" + i + ":" + (ary[0]+ary[1]) + "\n");
            }
            bw.flush();
        }
        
    }
     
     
    cs

    -> 정답(오답1 수정)

     

    오답 2

    - 처음에 작성한 코드인데 배열을 사용하지 않았다.

    출력은 정답과 똑같이 되는데 백준에 제출하면 오답으로 나온다. 이유를 찾지 못해 일단 기록!

    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
    29
     
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.StringTokenizer;
     
    public class Main {
     
        public static void main(String[] args) throws IOException {
            
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            
            int T = Integer.parseInt(br.readLine());
            for(int i=1; i<=T; i++) {
                    StringTokenizer st = new StringTokenizer(br.readLine(), " ");    
                    int A = Integer.parseInt(st.nextToken());
                    int B = Integer.parseInt(st.nextToken());
                    
                    
                    bw.write("Case #" + i + ":" + (A+B) + "\n");
            }
            bw.flush();
        }
        
    }
     
     
    cs

     

    -> 정답(오답2 수정)

     

    오답 3

    - 이번엔 출력이 다르다. 정수를입력 받고 바로 출력된다.

    -> 정답(오답3 수정)

    - 출력 부분을 System.out.println 쓰고 개행을 또 해버렸다.

     

     

    문제 링크:https://www.acmicpc.net/problem/11021

     

    11021번: A+B - 7

    각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.

    www.acmicpc.net

     

    댓글

Designed by Tistory.