반응형
문제
풀이
총 아홉명의 난쟁이들의 키가 입력으로 주어집니다.
일곱 명의 난쟁이를 선택하기 위해 아홉명 중에서 두 명이 빠진 경우 중에서
일곱 난쟁이의 키가 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
반응형
'알고리즘 연습' 카테고리의 다른 글
[ 백준_BOJ ] 14501. 퇴사 _ JAVA 문제풀이 (0) | 2019.10.31 |
---|---|
[ SWEA D4 ] 6719. 성수의 프로그래밍 강좌 시청 _ JAVA 문제풀이 (0) | 2019.10.23 |
[ 백준_BOJ ] 1476. 날짜계산 _ 문제풀이 JAVA (0) | 2019.10.23 |
[ 백준_BOJ ] 2636. 치즈 _ 문제풀이 JAVA (0) | 2019.10.23 |
[ 삼성 SW 역량 테스트 A형 기출문제 ] 3190. 뱀 _ JAVA 문제풀이 (3) | 2019.10.19 |