알고리즘테스트

김승연·2021년 3월 7일
0

알고리즘스터디

목록 보기
9/11

문제 설명
민아는 새 차를 사려고 합니다. 그녀는 돈이 여유롭지 않아 싼 차를 선호합니다. 문제가 있다면, 가장 싼 차는 품질이 의심스럽다는 점입니다.

그래서 민아는 자동차 가격표를 만들고 세 번째로 낮은 가격의 차를 사기로 결심했습니다.

int[] prices 가 주어집니다. 같은 가격이 int[] prices 에서 여러 번 나올 수 있지만, 가격 순서에는 한 번만 반영합니다.

자세한 설명은 예제 2를 참조하세요.

이제 int[] prices 에서 세 번째로 낮은 가격을 리턴하세요.

int[] prices 가 3개 미만인 경우, -1 을 리턴하세요.

참고 / 제약 사항
prices 의 요소의 개수는 1 개 이상, 50 개 이하입니다.
prices 의 각 요소는 1 이상 1000 이하의 정수입니다.
테스트 케이스
int[] prices = [10,40,50,20,70,80,30,90,60]리턴(정답): 30
int[] prices = [10,10,10,10,20,20,30,30,40,40]리턴(정답): 30
가장 낮은 가격은 10, 두 번째로 낮은 가격은 20, 세 번째로 낮은 가격은 30 입니다.

int[] prices = [10]리턴(정답): -1
int[] prices = [80,90,80,90,80]리턴(정답): -1

public int solution(int[] prices){
ArrayList answer = new ArrayList<>();
HashSet hashset = new HashSet<>();
int idx=0;
Set p = new HashSet();
for(int i=0; i<prices.length; i++) { // 중복값 제거 위해 hashset
p.add(prices[i]);
}
List money = new ArrayList(p);
Collections.sort(money);

	if (money.size()<3) {idx=-1;}
	else {idx = (int) money.get(2);}
	
	return idx;
	
	
}
profile
Doing nothing cause nothing to happen.

0개의 댓글