백준 11022번 A+B-8
문제
- 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오
우선 코딩테스트를 할 때 값을 입력받아야하기 때문에 bufferReader나 Scanner를 사용해야합니다.
간혹 속도문제 때문에 bufferReader를 추천하는 편인데, 우선 Scanner를 사용하여 보겠습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 값을 입력받는 스캐너
}
}
아시는 분들이 많겠지만 백준에 정답을 제출 할 때에는 무조건 클래스명을 Main으로 작성해야 인식합니다.
저도 처음에 몰라서 한창 해멨거든요.. 참고하시면 좋을 거 같아 남깁니다!
값을 입력 받는 스캐너를 설정 한 후, 이제 더해야하는 두 정수를 입력받아야합니다. 하지만 생각해보시면 더하기를 하는 횟수가 존재하는데요. 이 세 개의 변수를 모두 선언해 보겠습니다.
int a; // 더해야 하는 수를 정수형으로 입력받는 변수 선언
int b;
int num = sc.nextInt(); // 덧셈을 실행할 횟수를 입력받는 변수 선언
이제 변수 선언을 함으로서 프로그램을 짤 준비가 모두 끝났습니다. 횟수를 입력받고 그 횟수만큼 덧셈을 진행해한 후 출력해야 하기때문에 반복문인 for문으로 만들어보겠습니다.
for (int i = 1; i <= num; i++) {//for문은 num에 들어온 숫자만큼 반복되어 작동한다.
a = sc.nextInt();// 정수형 타입으로 입력받는 스캐너를 넣어준다.
b = sc.nextInt();// 반복할 때 마다 새로운 숫자가 들어오기 때문에 다시 선언해준다.
System.out.println("Case #" + i + ": " + a + " + " + b + " = " + (a+b) );//출력문 작성
}
문제를 보면
Case #1: 1 + 1 = 2
위와 같은 형식으로 출력하라고 되어있습니다. 한번 계산할때마다 #옆의 숫자를 하나씩 증가시켜줘야 합니다.
따라서 for문의 i가 작동할 때마다 1씩 증가하게 선언했기때문에 i를 1부터 시작하게 하여 출력문에 삽입했습니다.
보통 for문은 i가 0으로 되어있기 때문에 출력문에 i+1로 하셔도 무방합니다.
** 대소문자 구분이나 출력문의 오타도 오답으로 처리됩니다!
이제 작성이 완료되었기 때문에 한번 실행해보도록 하겠습니다.
5
1 1
Case #1: 1 + 1 = 2
2 2
Case #2: 2 + 2 = 4
3 3
Case #3: 3 + 3 = 6
4 4
Case #4: 4 + 4 = 8
5 5
Case #5: 5 + 5 = 10
위와 같이 출력이 됩니다. 보시면 출력문이 백준에서 말하는 대로 출력됨을 볼 수 있습니다.
마지막으로 모든 코드를 보여드리고 마무리 하겠습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 값을 입력받는 스캐너
int a;// 더해야 하는 수를 정수형으로 입력받는 변수 선언
int b;
int num = sc.nextInt(); // 덧셈을 실행할 횟수를 입력받는 변수 선언
for (int i = 1; i <= num; i++) {//for문은 num에 들어온 숫자만큼 반복되어 작동한다.
a = sc.nextInt();// 정수형 타입으로 입력받는 스캐너를 넣어준다.
b = sc.nextInt();// 반복할 때 마다 새로운 숫자가 들어오기 때문에 다시 선언해준다.
System.out.println("Case #" + i + ": " + a + " + " + b + " = " + (a+b) );//출력문 작성
}
}
}