전체 글
-
Level1) 콜라츠 추측PS/programmers 2020. 9. 12. 02:52
class Solution { public int solution(double num) { int answer = 0; if (num == 1) return 0; while (num != 1) { if (num%2 == 0) { num /= 2; } else { num = num * 3 + 1; } answer ++; if (answer == 500) return -1; } return answer; } } - 성공 - num 1일때 체크 - 들어오는 타입 double로 바꾸기
-
Level1) 최대공약수와 최소공배수PS/programmers 2020. 9. 12. 01:12
class Solution { public int[] solution(int n, int m) { int big = Math.max(n, m); int small = Math.min(n, m); return new int[]{ gcd(big, small), lcm(big, small)}; } public static int gcd(int big, int small) { return big % small == 0 ? small : gcd(small,big % small); } public static int lcm(int big, int small) { return big * small / gcd(big, small); } } - 성공 - 예전에 최대공약수 구하는 gcd 함수를 보고 외워져서 사용했음 - ..
-
Level1) 정수 제곱근 판별PS/programmers 2020. 9. 12. 00:40
class Solution { public long solution(long n) { double sqrt = Math.sqrt(n); long answer = sqrt%1 == 0 ? (long)((sqrt+1) * (sqrt+1)) : -1; return answer; } } - 성공 - pow, sqrt 메소드가 생각남 - 1로 나눈 나머지가 0으로 떨어지지않으면 제곱근이 아닌것을 활용함 class Solution { public long solution(long n) { if (Math.pow((int)Math.sqrt(n), 2) == n) { return (long) Math.pow(Math.sqrt(n) + 1, 2); } return -1; } } - 다른 사람 풀이 - sqrt한 값을 다..
-
Level1) 제일 작은 수 제거하기PS/programmers 2020. 9. 12. 00:29
import java.util.ArrayList; class Solution { public int[] solution(int[] arr) { ArrayList list = new ArrayList(); if (arr.length == 1) { return new int[]{-1}; } for (int i = 0; i < arr.length ; i++) { list.add(arr[i]); } int min = Integer.MAX_VALUE; int index = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; index = i; } } list.remove(index); int[] answer = new int[ar..
-
Level1) 이상한 문자 만들기PS/programmers 2020. 9. 11. 18:42
class Solution { public String solution(String s) { String answer = ""; int cnt = 0; String[] array = s.split(""); for(String ss : array) { cnt = ss.contains(" ") ? 0 : cnt + 1; answer += cnt%2 == 0 ? ss.toLowerCase() : ss.toUpperCase(); } return answer; } } - 실패 - 처음에 제출했는데 계속 몇몇 케이스에서 실패 - 이유를 몰라서 찾아보니 문제 자체를 잘못이해하고 풀었음 - 나는 그냥 문자를 공백 기준으로 쪼개서 풀었는데 문제에서 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 라는 말이 있다.
-
Level1) 크레인 인형뽑기 게임PS/programmers 2020. 9. 11. 16:45
import java.util.Stack; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; Stack basket = new Stack(); for (int move : moves) { for (int i = 0; i < board.length; i++) { if (board[i][move-1] != 0) { if (basket.isEmpty() || basket.peek() != board[i][move-1]) { basket.push(board[i][move-1]); } else if (basket.peek() == board[i][move-1]) { basket.pop(); answer += 2; }..
-
Level1) 정수 내림차순으로 배치하기PS/programmers 2020. 9. 11. 03:43
import java.util.Arrays; class Solution { public long solution(long n) { String str = String.valueOf(n); char[] chars = str.toCharArray(); Arrays.sort(chars); StringBuffer sb = new StringBuffer(String.valueOf(chars)); sb.reverse(); return Long.parseLong(sb.toString()); } } - 성공 1. char[] 배열로 만들고 내림차순 정렬 2. String 타입으로 다시 바꿔서 StringBuffer.reverse() 사용해서 뒤집어주기 3. Long.parseLong(); res = ""; Intege..
-
Level1) 핸드폰 번호 가리기PS/programmers 2020. 9. 11. 03:18
class Solution { public String solution(String phone_number) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < phone_number.length()-4; i++) { sb.append('*'); } sb.append(phone_number.substring(phone_number.length() - 4)); return sb.toString(); } } - 성공 - StringBuffer에 차근차근 * 채워주고 나머지 4글자에선 언래 있던 문장에서 substring해서 가져옴 class Solution { public String solution(String phone_number) { char[]..