문제

문제출처 : Baekjoon

img

풀이1 (21.8.23)

import java.util.Scanner;

public class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);

        while(!sc.hasNextInt()) {
            sc.next();
            System.out.println("숫자가 아닙니다. 다시 입력해주세요.");
        }

        int a = sc.nextInt();
        int b = sc.nextInt();

        sc.close();

        System.out.println(a + b);
    }
}

풀이2 (21.8.24)

import java.util.Scanner;

public class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);

        int a,b = 0;

        while(true){
            a = sc.nextInt();
            b = sc.nextInt();
            if(a > 0 && b < 10){
                break;
            }
        }
        sc.close();
        System.out.println(a+b);
    }
}

풀이3 (22.6.7)

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String str = br.readLine();

        StringTokenizer st = new StringTokenizer(str, " ");
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());

        System.out.println(a+b);
    }
}

회고1 (21.8.23)

  1. 입력받을때는 Scanner 함수를 사용. 많이 사용해본적이 없어서 아직 사용이 어색하다. 문제를 풀다보면 많이 써보겠지?
  2. hasNextInt() 함수는 검색을 하다가 알게된 함수로, int값이 들어올 때만 true를 반환하는 함수라서 사용했다. 하지만 a값에 숫자를 넣고 b값에 숫자가 아닌 값을 넣었을때는 오류가 발생해서 이 부분에 대한 처리는 어떻게 하는것이 좋은지 잘 모르겠다.
  3. 문제에서는 a와 b값에 대한 범위를 설정해줬는데 풀때는 설정하지 않았다. 이부분에 대한건 do while문도 사용해봤는데 왜인지 값이 3개 들어가고나서 결과값이 출력되어서 뭔가 문제가 있는것이 분명하다!

다음에는 2,3번에 대한 부분을 리팩토링해서 다시 제출해보기로!

회고2 (21.8.24)

  1. 일단 범위 지정해서 해결했다! 원래는 break밑에 System.out.println("해당 숫자는 계산할 수 없습니다. 다시 입력해주세요") 와 같은 문구를 넣고싶었는데, 이렇게 넣으면 백준사이트에서 오류가 나서 일단 안넣었다.
  2. 그래서 일단 hasNextInt() 함수는 삭제했는데 어떻게 하는게 좋으려나. 이건 개인적으로도 궁금해서 계속 고민해볼듯!

회고3 (22.6.7)

  1. 그전에 사용했었던 scanner 대신 버퍼를 사용해서 그동안풀었던 문제 다시 풀기 + 알고리즘 문제풀면서 공부하기…하려고 한다!
  2. 오랜만에 문제 풀려고하니까 어렵다어려워