문제 : 숫자 배열중 중복된 숫자를 찾고 과반수를 넘겼을 시 반환 아닐 시 -1 을 반환 하는 메소드 만들기
과반수 = 배열 길이 n 의 나누기 2
Ex) 3, 5, 3, 3, 3, 4, 3, 1
* 과반수 8 / 2 = 4
* 반환값 = 3
1, 5, 3, 6, 3, 4, 3, 1
* 과반수 8 / 2 = 4
* 반환값 = -1
풀이 : C# 으로 했던것들 java 로 변환!!!!
package com.company;
import java.io.Console;
import java.lang.reflect.Array;
import java.util.Arrays;
public class MajorityNumberFind {
static int[] arr1 = { 3, 5, 3, 3, 3, 4, 3, 1 };
static int[] arr2 = { 1, 5, 3, 6, 3, 4, 3, 1 };
public static void main(String[] args)
{
System.out.println("첫번째 배열 1, 5, 3, 3, 3, 4, 3, 1 중 과반수 = " + Solution(arr1));
System.out.println("두번째 배열 1, 5, 3, 6, 3, 4, 3, 1 중 과반수 = " + Solution(arr2));
}
static int Solution(int[] nums)
{
int result = 0;
int majorityNum = (nums.length) / 2;
var _array = Arrays.stream(nums).distinct().toArray();
int count = 0;
for (int item: _array)
{
// Stream 연습용
int count2 = (int)(Arrays.stream(nums).filter(x -> x == item).count());
for (int i =0; i < nums.length; i++)
{
if (item == nums[i])
{
count++;
continue;
}
}
if (count2 > majorityNum)
{
result = item;
break;
}
else
{
return -1;
}
}
return result;
}
}
'알고리즘 > JAVA' 카테고리의 다른 글
[JAVA] 모의고사 - 프로그래머스 (0) | 2020.10.20 |
---|---|
[JAVA] 두개 뽑아서 더하기 - 프로그래머스 (0) | 2020.10.20 |
JDBC 2단계 - DB와 연결, 데이터 받아오기 (0) | 2015.12.16 |
JDBC 1단계 - JAVA에서 데이터베이스 드라이버 검색하기 (0) | 2015.12.16 |
Java 에서 Excel 값 불러오기 (0) | 2015.12.15 |