[알고리즘] 백준10951 (반복문)
백준 10951 문제이다.
https://www.acmicpc.net/problem/10951
위와 같이 숫자를 입력받아, 계산을 하는 문제이다.
딱 보았을때 쉽다고 느꼈다. 코드를 작성하려고 했는데 2가지 문제에 걸렸다.
1. 몇 개의 케이스를 입력해야하는가?
2. 언제 프로그램이 종료 되는가?
만약 더해야하는 것의 갯수가 정해져 있다면 for문을 이용하면 될 텐데,
위의 문제는 케이스가 정해져 있지 않았다.
그렇다면 while문을 이용해야 하는데, while()의 안의 조건문에 어떤 조건을 넣어야 되는 것일까.
어떻게 구현을 할 지 몰라 검색을 해보았다.
https://st-lab.tistory.com/40
위 블로그의 글을 바탕으로 예외처리 방법에 대해 알아보았다.
이 문제에서 가장 중요한 점이 파일 종료 조건이 없이 그냥 입력이 주어졌다는 것이다.
즉 입력에서 더 이상의 읽을 수 있는 데이터가 존재하지 않을 때 반복문을 종료하라는 것이다.
이렇게 데이터가 더 이상 존재하지 않을 때 우리는 EOF(End of File) 즉, 파일의 끝이라 한다.
Scanner를 통해 코드를 작성할 경우 EOF처리 방법은
1. try-catch문으로 예외 발생시 반복문을 종료시켜주도록 한다.
2. Scanner 의 메소드인 hasNext(), hasNextInt()를 통해 처리한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while(scan.hasNextInt()){
int a = scan.nextInt();
int b = scan.nextInt();
System.out.println(a+b);
}
scan.close();
}
}
Author And Source
이 문제에 관하여([알고리즘] 백준10951 (반복문)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hoha/알고리즘-백준10951-반복문저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)