백준 온라인 저지에서 문제를풀어보자 #5(2576번: 홀수)
https://www.acmicpc.net/problem/2576
문제
7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최소값을 찾는 프로그램을 작성하시오.
예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은
77 + 41 + 53 + 85 = 256
이 되고,
41 < 53 < 77 < 85
이므로 홀수들 중 최소값은 41이 된다.
입력
입력의 첫째 줄부터 일곱 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100보다 작다.
출력
홀수가 존재하지 않는 경우에는 첫째 줄에 -1을 출력한다. 홀수가 존재하는 경우 첫째 줄에 홀수들의 합을 출력하고, 둘째 줄에 홀수들 중 최소값을 출력한다.
//참고 이번문제는 Olympiad > 한국정보올림피아드시․도지역본선 > 지역본선 2006 > 초등부 1번
초등부 문제입니다.;;;
이번문제를 풀때 신경써야 하는 부분은 크게 2가지가 있습니다.
바로 홀수일때 라는 부분과 홀수가 없을때 -1을 출력시키는 부분입니다.
문제에선 7개의 숫자를 입력받는다고 했기 때문에 for문을 통해 7번을 반복시키고
Scanner 를 통해서 입력을 받았습니다.
for문 내부에서는 if(tmp%2==1)을 통해 2로 나누었을때 1이되는 숫자를 구하는 방식으로
홀수를 찾아 내었습니다.
if문 내부에서는
Math.min 함수를 통하여 작은함수를 min에 저장하는 방식을 사용했습니다.
또한 정수형 변수 min은 101로 초기화 함으로써 입력의 최대크기는 100을 넘지 않는 다는 부분을 이용하여
for문을 통과한 이후에도 101 이면 훌수가 주어지지 않았다는것을 알수 있습니다.
따라서 해당하는 내용을 소스로 옮겨놓게된다면
이런식으로 소스코드를 작성 할 수 있습니다.
This post received a 43% upvote from @krwhale thanks to @gmba! For more information, click here!
이 글은 @gmba님의 소중한 스팀/스팀달러를 지원 받아 43% 보팅 후 작성한 글입니다. 이 글에 대한 자세한 정보를 원하시면, click here!