ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2072) 홀수만 더하기 JAVA
    SW Expert Academy 2019. 12. 19. 17:03

    문제는 아래의 링크에서 확인 후, 확인해주세요.

    https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5QSEhaA5sDFAUq#none

     

     

    1. Scanner 사용해서 푼 것

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    //Scanner 사용을 위해
    import java.util.*;
     
    public class Solution {
     
       public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          //테스트 케이스를 입력받을 변수
          int T = sc.nextInt();
          
         
          for(int i=1; i<=T; i++) {      //테스트 케이스만큼 반복해서 입력을 받음
             int sum = 0;                 //숫자들의 합을 저장할 변수
             for(int j=0; j<10; j++) {    //하나의 케이스마다 10개씩 입력받게 함
                int num = sc.nextInt();    //숫자들을 입력받고
                if(num%2 != 0)            //숫자들이 홀수인지 판별함
                    sum += num;            //홀수이면 sum에 num을 계속 저장함
             }
             System.out.println("#" + i + " " + sum);    //출력
          }
       }
    } cs

     

    Scanner를 이용해서 문제를 풀었을 때,

    19,984 kb 메모리 / 120 ms ( 0.13158s ) 실행시간

     

    2. BufferedReader / BufferedWriter 사용해서 해결

    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
    33
    34
    import java.io.*;        //BufferedReader, BufferedWriter 사용
    import java.util.*;        //StringTokenizer 사용
    public class Solution {
     
        public static void main(String[] args) throws IOException{
            BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
            //테스트 케이스를 입력받음.
            //BufferedReader의 경우, String으로 받아오기 때문에 형변환이 필요하다.
            String Tast = bf.readLine();
     
            //테스트 케이스 변수를 지정하고 위에서 받은 Tast를 형변환해줌.
            int T = Integer.parseInt(Tast);
            
            for(int j=1; j<=T; j++) {
                int n=0;        //각 케이스마다 입력받는 숫자의 변수
                int sum=0;        //케이스의 합을 저장하는 변수
                
                //10개의 숫자를 입력받음
                String line = bf.readLine();
                
                //띄어쓰기로 나눠서 토큰을 읽어옴
                StringTokenizer st = new StringTokenizer(line, " ");
                while(st.hasMoreTokens()) {                //토큰이 있다면
                    n = Integer.valueOf(st.nextToken());    //n에 토큰의 값을 정수로 저장함
                    if(n%2 != 0){        //n의 값이 홀수라면
                        sum += n;        //sum 변수에 n을 계속 더함
                    }
                }
                bw.write("#" + j + " " + sum + "\n");    //출력
            }
            bw.flush();bw.close();bf.close();    //사용한 BufferedReader, BufferedWriter를 닫아줌
        }
    } cs

    BufferedReader, BufferedWriter를 이용해서 문제를 풀었을 때,

    19,372 kb 메모리 / 105 ms ( 0.10540s )실행시간

    'SW Expert Academy' 카테고리의 다른 글

    8658) Summation - Java  (0) 2020.01.02
    8931) 제로 - JAVA  (0) 2020.01.02

    댓글

Designed by Tistory.