문제설명입력 & 출력 나의 풀이 이번 문제는 5개의 정수가 주어졌을 때 5개 중 세 개로 나누어 지는 가장 작은 자연수를 구하는 문제입니다.제약 조건이 작음: 주어진 문제에서 숫자의 범위는 크지 않다.명확한 조건: 숫자를 1씩 증가시키면서 최소 3개의 숫자에 대해 나누어 떨어지는지 확인하는 조건이 명확위 조건에 부합하여 브루트 포스 알고리즘을 사용하면 쉽게 해결할 수 있습니다. 대부분의 코드에 대한 설명은 주석을 달아놨습니다. 전체적인 접근 방식은 다음과 같습니다.입력받기: 5개의 숫자를 입력받아 배열에 저장합니다.숫자 증가: 1부터 시작하여 가능한 숫자를 하나씩 증가시킵니다.나누어 떨어지는지 검사: 증가한 숫자가 배열의 숫자들 중 최소 3개의 숫자로 나누어 떨어지는지 검사합니다.조건 만족 시 종료: ..
문제설명입력 & 출력 나의 풀이 이번 문제는 슈퍼 마리오가 앞에 높인 버섯을 먹습니다. 이때 숫자를 100에 가장 가깝게 만들면 되는 문제입니다. "모든 버섯을 집을 필요는 없고 중간에 중단할 수 있다" 라는 말은 즉 100에 가장 가깝다면 중단하면 된다라는 뜻입니다. 그러면 이 때 문제에서 나왔듯이 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택해야 합니다. 먼저 빠른 입력을 위해 BufferedReader클래스를 사용하여 입력을 받아주고, sum변수에 누적하여 더해줍니다. 그리고 이제 현재 값과 다음 값 중 100에 더 가까운 수를 찾아야 합니다. 이때 Math.abs() 메서드를 사용하여 절댓값을 만들고 100에서 빼주면 거리의 차이를 알 수 있습니다. 첫 번..
▶ BufferedReader와 StringBuilder을 활용한 간단한 문제가 있어 정리해보고자 합니다. 문제설명입력 & 출력나의 풀이 이번 문제는 입력된 문자열 숫자를 뒤집어서 더하고 다시 뒤집어서 출력하는 문제입니다. 입력을 String타입으로 받아주고, StringBuilder의 reverse() 메서드를 사용하여 문자열을 뒤집어 줍니다. 뒤집어준 문자열 숫자를 연산을 해야 하기 때문에 Integer.parseInt() 메서드로 정수형으로 캐스팅을 해줘야합니다. 그리고 마지막으로 연산된 결과를 다시 뒤집어주면 마무리가 됩니다. Refactoring StringBuilder의 reverse() 메서드를 사용하는 부분을 하나로 묶어 함수로 선언했습니다. 문자열을 뒤집어 순자로 변환하는 부분이 한 ..
문제설명입력 & 출력나의 풀이 이번 문제는 주어진 휴가 일 수와 캠핑장의 영업 일 수에 따라서 캠핑을 할 수 있는 최대 일 수를 계산하는 문제입니다. 즉 휴가기간 동안 얼마큼 캠핑장에 있을 수 있는 일수를 구하는 문제입니다. 먼저 빠른 입력을 위해서 BufferedReader클래스를 사용하여 입력을 받아주고 해당 입력을 StringTokenizer를 사용하여 공백을 기준으로 토큰으로 나누어줍니다. 0 0 0 이 입력되기 전까지 입력이 계속 이어져야 하기 때문에 while문을 무한 반복으로 선언해 줍니다. 0 0 0이 입력된다면 break문으로 반복문을 빠져나오고, 휴가 일 수를 P로 나누어 몫을 구합니다. 이는 캠핑이 가능한 "주기 수"입니다. 그리고 남은 휴가일수와 캠핑장의 영업일수를 비교하여 더 작은..