-
2021 새해의 다짐이었던 깃허브 1일 1커밋 챌린지를 위한
1/13일 알고리즘 풀이 내용!
오늘 풀어본 문제는
백준 알고리즘 10952번(while문) 문제
결과는 A+B가 계속 찍히되,
입력받는 값이 0, 0이 되면 루프가 종료되어야한다.
다음은 내가 제출한 답안이다.
제출 답안(정답처리)
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { int a = sc.nextInt(); int b = sc.nextInt(); if ( a == 0 && b == 0) { break; } int sum = a + b; System.out.println(sum); } } }
BufferedRead보다 Scanner가 익숙해서 Scanner를 사용했다.
한 번 틀렸기 때문에 밑에 while문에 관한 내용을 좀 더 정리하겠다.
while문(반복문)의 기본 신택스
while(조건문){
실행문;
(후위연산자;) ->무한루프가 아닐 경우 조건문을 맞춰주기 위해 i++ 같은 후위연산자를 쓰는 경우가 많다.
}while로 무한루프를 만들 경우,
조건문에 true를 적어주면 된다.
※단, 무한루프를 끊기 위한 조건이 따로 또 필요하다!※
(경우에 따라서 무한루프가 안끝나서 시스템이 다운되기도 한다.)
이번 문제의 경우도 무한루프(true)를 쓰고
무한루프를 끝낼 조건을 달아줘야 한다.
(처음에 무한루프를 안쓰고 했는데 틀린거보니,,
제출자 의도가 무한루프인 것 같다.)
▶ 문제 해결 방법
- while 조건문 안에 true를 써서 무한루프를 만들어준다.
- 무한루프를 끝내기 위해 while안에 if문을 작성한다.
- if문 안에 break를 기술한다. (break에 걸려서 루프 종료)
- if문의 조건은 a == 0 && b == 0 !!
- 조건을 만족하면 while의 무한루프를 빠져나와 실행이 종료된다.
'etc > 알고리즘' 카테고리의 다른 글
[백준] 10951 자바(JAVA) : A + B - 4 (0) 2021.01.31 [백준] 3052 자바(JAVA) : 나머지 (0) 2021.01.31 [백준] 2577 자바(JAVA) : 숫자의 개수 (0) 2021.01.31 댓글