전체 글
-
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[]..
-
Level1) 자연수 뒤집어 배열로 만들기PS/programmers 2020. 9. 11. 03:15
class Solution { public int[] solution(long n) { String str = String.valueOf(n); char[] chars = str.toCharArray(); int[] answer = new int[chars.length]; for (int i = 0; i < chars.length/2; i++) { answer[i] = chars[chars.length-1-i] - '0'; answer[chars.length-1-i] = chars[i] - '0'; } if (answer[chars.length/2] == 0) { answer[chars.length/2] = chars[chars.length/2] - '0'; } return answer; } } - 성공..
-
Level1) 완주하지 못한 선수PS/programmers 2020. 9. 10. 15:25
import java.util.Arrays; public class Solution { public static String solution(String[] participant, String[] completion) { Arrays.sort(participant); Arrays.sort(completion); int i = 0; for (i = 0; i < completion.length; i++) { if (!participant[i].equals(completion[i])) { return participant[i]; } } return participant[i]; } } - 실패 - 다른 풀이 참조 - 나도 두 배열 정렬하고 participant[i] 값 빼는거 까진 생각했는데 만약에 partic..