본문 바로가기

Plo Algorithm

(32)
프로그래머스 Lv1 로또의 최고 순위와 최저 순위 import java.util.*; class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; //두 배열의 값이 같을 때 , lottos 배열의 값이 0일 때 , 최종적으로 -해줄 때 사용할 객체의 선언 //6개 번호가 모두 일치할 때의 값이 1이기 때문에 rank는 7로 선언한다. int match = 0; int zero = 0; int rank = 7; //배열의 값을 비교하기에 앞서 오름차순으로 두 배열을 정렬 Arrays.sort(lottos); Arrays.sort(win_nums); //반복문으로 두 배열의 값을 비교하며 두 배열의 값이 같으면 match가 1씩 더해진다. f..
프로그래머스 Lv1 두개 뽑아서 더하기 class Solution { public Set solution(int[] arr) { Set set = new TreeSet(); for (int i =0 ; i < arr.length ; i++){ for (int j = 0; j < arr.length; j++) { if(i == j) { continue; } set.add(arr[i] + arr[j]); } } return set; } } Set set = new TreeSet(); -Set- 저장 순서가 유지되지 않는다. 반복문과 인덱스를 통하여 Set의 탐색이 불가능해 Iterator를 사용해야한다. 객체의 중복을 자동으로 제거해준다. -TreeSet- 이진 탐색트리 형태로 데이터를 저장하며 데이터의 추가 , 삭제는 다른 Set Collect..
프로그래머스Lv1 같은 숫자는 싫어 import java.util.*; public class Solution { public int[] solution(int []arr) { //ArrayList 객체를 하나 생성 ArrayList arrayList = new ArrayList(); //arr을 arrayList에 할당해줄 반복문 생성 for (int i = 0 ; i < arr.length ; i++){ if (i == 0){ //1번째 값과 비교하며 나아가기 위하여 미리 1번째 값을 할당해준다. arrayList.add(arr[0]); }else{ //arrayList.size()-1을 index한 객체를 가져와 arr[i]와 비교 //같지않을 경우에만 할당해준다. if(arrayList.get(arrayList.size()-1) !..
프로그래머스 Lv1 최소 직사각형 첫번째 오답 import java.util.*; class Solution { public int solution(int[][] sizes) { //Arrays로 합치고 sort로 정렬 중간을 인덱스해서 두개의 배열로 짼다 //큰 배열의 가장 큰 값 작은 배열의 가장 작은값 int answer = 0; int[] arr = new int[sizes.length * sizes[0].length]; //i는 4까지 증가 for (int i = 0 ; i < sizes.length; i++){ //j는 1까지 증가 for (int j =0 ; j
프로그래머스 Lv1 하샤드 수 기존 풀이 class Solution { public boolean solution(int x) { boolean answer = true; String typeStr = String.valueOf(x); String[] strArr = typeStr.split(""); int share = 0; //파라미터를 나눈 arr의 각 객체를 다른 객체에 넣어줘야함 for (int i = 0 ; i < strArr.length ; i++){ share += Integer.parseInt(strArr[i]); } if(x % share == 0){ answer = true; }else{ answer = false; } return answer; } } 뜯어보기 public class Solution{ privat..
프로그래머스 Lv1 콜라츠 추측 class Solution { public int solution(int num) { long numL = (long)num; int count = 0; while(1 < numL) { numL = numL % 2 == 0 ? numL / 2 : (numL * 3) + 1; count++; System.out.println(count); if (500
프로그래머스 Lv1 제일 작은 수 제거하기 import java.util.*; import java.util.stream.Collectors; class Solution { public int[] solution(int[] arr) { List list = Arrays.stream(arr).boxed().collect(Collectors.toList()); Arrays.sort(arr); list.remove(list.indexOf(arr[0])); if (list.size() i).toArray(); } } - List list = Arrays.stream(arr).boxed().collect(Collectors.toList()); - 이전 문제에서 정리했기에 이제는 알아볼 수 있다. 파라미터로 받은 arr을 ArrayList로 변환 후 lis..
프로그래머스 Lv1 정수 제곱근 판별 class Solution { public long solution(long n) { long answer = 0; double doubleN = Math.sqrt(n); //입력받은 n을 long으로 형변환 Math.dqrt()함수를 통해 제곱근을 구해줌 if (doubleN % 1 == 0) { //제곱근을 1로나눈 값이 0일 때 : 1로 나눠떨어지므로 소수점 값이 없다. (양의 정수의 제곱이다.) answer = (long)doubleN; // answer에 doubleN을 할당. answer = answer +1; //answer +1해준 후 answer = answer * answer; //answer * answer }else { //else일 때 -1을 할당. answer = -1 ; } r..