알고리즘 연습

[ 백준_BOJ ] 2309. 일곱 난쟁이 _ JAVA 문제풀이

코딩하는 너구리 2019. 10. 23. 19:53
반응형

문제

 

 

 

 

 

풀이

 

 

총 아홉명의 난쟁이들의 키가 입력으로 주어집니다.

일곱 명의 난쟁이를 선택하기 위해 아홉명 중에서 두 명이 빠진 경우 중에서

일곱 난쟁이의 키가 100이 되는 경우를 찾았습니다.

 

먼저 난쟁이들의 키를 입력받았고 sum 변수에 난쟁이들의 키의 합을 저장했습니다.

가능한 경우에 대해서 오름차순으로 출력해야 하므로 Arrays.sort( ) 를 이용해 정렬하고 시작하였습니다.

 

for문을 이용하여 두 명의 난쟁이를 제외시킵니다.

가장 바깥쪽에 있는 i와 j 를 이용해 두 명의 난쟁이를 찾고

만약 이 두 난쟁이의 키 값을 뺀 키의 합이 100이 될 경우 ( = sum - arr[ i ] - arr [ j ] == 100 )

난쟁이의 키를 출력하도록 해주었습니다.

 

해당하는 난쟁이 조합을 찾으면 boolean변수에 true 처리를 이용해 for문을 빠져나올 수 있도록 하였습니다.

 

가능한 방법의 경우들을 모두 확인해보는 브루트포스 방식의 문제풀이였습니다.

 

 

 

 

코드

 

 

 

 

 

 

 

출처

 

 

 

https://www.acmicpc.net/problem/2309

 

2309번: 일곱 난쟁이

아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.

www.acmicpc.net

 

반응형