Algorithm/Programmers(26)
-
[programmers] 최소직사각형 (java) -1level
문제 설명 문제 해결 문제를 읽고 처음에 가장 큰 수를 미리 구하고 그 큰 수를 고정시켜서 나머지 작은 수들을 가로와 세로를 나눠 비교하려고 했다. 이렇게 생각하니 너무 복잡하고 시간을 많이 소비하게 되었다. 쉽게 쉽게 생각하자. 왼쪽을 가로길이 , 오른쪽을 세로 길이라고 나눴을 때 가로에는 큰 수들을 넣고 세로에는 작은 수들을 넣어 놓자. 그리고 가로에서 가장 큰 수를 선택하고 세로에서 가장 큰 수를 선택하면 모든 길이를 만족하는 지갑을 만들 수 있다. public class 최소직사각형 { public int solution(int[][] sizes) { int w = 0, h = 0; //가로 세로 int max_w = 0 , max_h = 0; // 가로에다가 가장 큰수, 세로에다가 작은 수를 넣..
2022.02.26 -
[programmers] 콜라츠 추측 (java) -1level
문제 설명 문제 해결 입력받은 num의 타입을 long으로 해주어야 한다. 타입을 바꾸지않고 진행하게 되면 int 타입을 넘어 오버플로우가 발생한다. (-1을 한번 거치게 된다.) 제한 사항을 염두하고 풀이에 집중하자. public class 콜라츠추측 { public int solution(long num) { // 입력받은 num 을 long 으로 타입을 바꿔줘야한다. int cnt = 0; while(num != 1){ if(num % 2 == 0) num /= 2; else num = num * 3 + 1; cnt ++; if(cnt == 500){ return -1; } } return cnt; } }
2022.02.25 -
[programmers] 자연수 뒤집어 배열로 만들기 (java) -1level
문제 설명 문제 해결 import java.util.ArrayList; public class 자연수뒤집어배열로만들기 { public int[] solution(long n) { ArrayList list = new ArrayList(); long tmp = n; while(tmp > 0){ long a = tmp % 10; list.add(a); tmp /= 10; } int[] answer = new int[list.size()]; for (int i = 0; i < list.size(); i++){ answer[i] = list.get(i).intValue(); } return answer; } }
2022.02.23 -
[programmers] 나누어 떨어지는 숫자 배열 (java) -1level
문제 설명 문제 해결 import java.util.ArrayList; import java.util.Collections; public class 나누어떨어지는숫자배열 { public int[] solution(int[] arr, int divisor) { ArrayList list = new ArrayList(); for (int i = 0; i < arr.length; i++){ if(arr[i] % divisor == 0) list.add(arr[i]); } if(list.isEmpty()) return new int[]{-1}; int[] answer = new int[list.size()]; Collections.sort(list); for (int i = 0; i < list.size(); ..
2022.02.22 -
[programmers] 문자열 내 마음대로 정렬하기 (java) -1level
문제 설명 문제 해결 split과 substring 사용하여 문제를 해결하였다. import java.util.ArrayList; import java.util.Arrays; public class 문자열내마음대로정렬하기 { public String[] solution(String[] strings, int n) { Arrays.sort(strings); // strings 오름차순 정렬 String[] arr = new String[strings.length]; // strings와 길이가 같은 arr 배열 생성 for (int i = 0; i < strings.length; i++) { arr[i] = strings[i].split("")[n]; // arr 배열에 strings 인덱스값들의 n 번째..
2022.02.21 -
[programmers] 서울에서 김서방 찾기 (java) -1level
문제 설명 문제 해결 public class 서울에서김서방찾기 { public String solution(String[] seoul) { for (int i = 0; i < seoul.length; i++){ if(seoul[i].equals("Kim")){ return "김서방은 "+ i + "에 있다"; } } return ""; } }
2022.02.21