알고리즘

[백준] 입출력 - 11021, 11022, 11718(서칭).

hatch 2023. 1. 17. 01:32
728x90
반응형

* 공부 목표

입출력 - 2557, 1000, 2558, 1095010951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992

 

  • 11021번

문) A + B 응용.

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

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

 

** 그냥 작성과 배열 활용 작성, 2가지 버전이 있다.

1-1. 그냥 작성. // 메모리는 더 많이 사용했지만, 훨씬 빠르고 코드 길이도 압도적으로 적었다.

import java.util.*;

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+1; i++){
            int a = sc.nextInt();
            int b = sc.nextInt();
            int sum = a + b;
            System.out.println("Case #" + i + ": " + sum);
        }
        sc.close();
    }
}

 

1-2. 배열 활용. // 메모리는 덜 차지했지만, 시간과 코드 모두 길었음.

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        int arr[] = new int[T];
        
        for(int i=0; i<T; i++){
            int a = sc.nextInt();
            int b = sc.nextInt();
            arr[i] = a + b;
        }
        for(int i=0; i<T; i++){
            int num = i + 1;
            System.out.println("Case #" + num + ": " + arr[i]);
        }
        sc.close();
    }
}

간단한 내용은 배열 활용 하지 않는 방향이 시간과 코드 길이 단축에 도움이 될 것 같다.

 

  • 11022번

문) A + B 응용.

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

출) 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.

import java.util.*;

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+1; i++) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            int sum = a + b;
            System.out.println("Case #" + i + ": " + a + " + " + b + " = " + sum);
        }
        sc.close();
    }
}

 

  • 11718번 (아직 좀 이해가 덜 됨.)

문) 입력 받은 대로 출력하는 프로그램을 작성하시오.

입) 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.

 

** 최대 100줄, 최대 100글자... 에 낚이지 말자.

다음에 입력 값이 있으면 // hasNext();

계속 출력하는 형태 // nextLine();

 

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        while(sc.hasNext()){
            System.out.println(sc.nextLine());
        }
    }
}