코딩테스트 문제 풀이/프로그래머스
-
프로그래머스 : 가운데 글자 가져오기코딩테스트 문제 풀이/프로그래머스 2023. 11. 22. 01:01
다른 사람 코드 class StringExercise{ String getMiddle(String word){ return word.substring((word.length()-1)/2, word.length()/2 + 1); } public static void main(String[] args){ StringExercise se = new StringExercise(); System.out.println(se.getMiddle("power")); } } 오잉 그러고보니 클래스 이름하고 실행 메소드 이름이 다르다 이런 형식의 풀이가 꽤 많이 보이는 것을 보면 예전엔 이런 형식으로 시행되었었나보다~~ 🤭 그건 그렇고 substring(word.length() - 1 / 2, word.length() / ..
-
프로그래머스 : 3진법 뒤집기코딩테스트 문제 풀이/프로그래머스 2023. 11. 22. 01:01
ㅋㅋ 난 정말 힘들게 풀었는데 Integer 클래스 활용을 제대로 하지 못해서 고생한 거였다 🤣 그리고 너무 어렵게 생각했던것도 한몫함..😔 다른사람 코드 _ 프로그래머스 다른사람풀이 첫번째 두번째 합침 class Solution { public int solution(int n) { int answer = 0; String third = Integer.toString(n, 3); StringBuffer sb = new StringBuffer(third); String reversed = sb.reverse().toString(); answer = Integer.parseInt(reversed, 3); return answer; } } 헛웃음만 나온다 진짴ㅋㅋㅋㅋ 위에 코드는 한줄로도 됨.. class ..
-
프로그래머스 : 이상한 문자 만들기코딩테스트 문제 풀이/프로그래머스 2023. 11. 22. 01:01
정말 간단한 문제인줄 알았는데 아니었다 🙄 다른사람 코드 프로그래머스 다른사람코드 - 첫번째 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; } } 정말 똑똑해..!! 이 사람은 문자열을 배열로 모두 분해해서 배열의 인덱스를 모두 순회하며 단어만의 인덱스를 계산할 cnt 변수를 만들어 사용하였고 단어에서..
-
프로그래머스 : 폰켓몬코딩테스트 문제 풀이/프로그래머스 2023. 11. 21. 00:01
방대한 글씨량에 낚임.. 문제의 핵심은 중복 없이 가져갈수 있는 폰켓몬의 종류의 개수는? 이었다 내 코드 import java.util.HashSet; class Solution { public int solution(int[] nums) { HashSet set = new HashSet(); for(int i: nums) { set.add(i); } return nums.length / 2 > set.size() ? set.size() : nums.length / 2; } } HashSet에 배열의 요소들을 집어넣어 중복을 없앤 후 HashSet의 크기와 nums.length/2 의 값 중 작은 값을 결과로 출력되게 작성하였다. 메모의 흔적 🔻
-
프로그래머스 : 소수 찾기코딩테스트 문제 풀이/프로그래머스 2023. 11. 21. 00:01
실패한 내 코드 질문하기에서 에라토스테네스의 체를 이용하면 된다고 문제를 해결한 사람들이 작성해뒀어서 내 나름 에라토스테네스의 체를 이용해본 코드였다 🥲 이 코드로는 마지막 테스트 케이스 3개에서 계속 시간초과가 떠서 해결하지 못했다. 내가 생각했던 코드중에 그나마 시간 비용을 줄인 코드였어서 기록! ✏️ import java.util.ArrayList; class Solution { public int solution(int n) { int answer = 0; ArrayList list = new ArrayList(); for (int i = 2; i 소수의 배수들 모두 제거 for (j = 2; j * findNum < list.get(list.size() - 1); j++) { if (list.c..
-
프로그래머스 : 문자열 내 p와 y의 개수코딩테스트 문제 풀이/프로그래머스 2023. 11. 21. 00:01
내 코드 class Solution { boolean solution(String s) { return s.replaceAll("[pP]", "").length() == s.replaceAll("[yY]", "").length(); } } 이번 문제는 정말 쉬웠다. 비교해야할 대상이 변하지 않고 고정되어있었기 때문이다. 문자열에서 p와P의 개수의 합과, y와Y의 개수의 합을 비교해서 같으면 true를 , 다르면 false를 반환하는 문제이다. 나의 풀이방법은 p와P를 문자열에서 없앴을때 문자열의 길이와, y와Y를 문자열에서 없앴을때의 문자열의 길이를 비교하여 바로 출력하였다.
-
프로그래머스 : 성격 유형 검사하기코딩테스트 문제 풀이/프로그래머스 2023. 11. 21. 00:01
다른사람 코드 출처 : 프로그래머스 스쿨 - 다른사람 풀이 첫번째 import java.util.HashMap; class Solution { public String solution(String[] survey, int[] choices) { String answer = ""; char[][] arrChar = new char[][]{{'R', 'T'}, {'C', 'F'}, {'J', 'M'}, {'A', 'N'}}; int[] points = new int[]{0, 3, 2, 1, 0, 1, 2, 3}; HashMap tbl = new HashMap(); for (char[] c: arrChar) { tbl.put(c[0], 0); tbl.put(c[1], 0); } for (int i = 0; i..
-
프로그래머스 : K번째 수코딩테스트 문제 풀이/프로그래머스 2023. 11. 21. 00:01
프로그래머스 문제 링크 나의 접근 방법 먼저 foreach문을 사용해서 array의 제시된 부분을 Arrays 클래스의 copyOfRange( 원본배열 , 시작인덱스 , 끝인덱스 ) 메소드를 사용해 새로운 배열로 복사해온다. 그 다음 Arrays 클래스의 sort 메소드를 사용하여 정렬을 하고 결과를 담을 answer 배열에 제시된 인덱스의 값을 담아준다. 내 코드 public int[] test(int[] array, int[][] commands) { int[] answer = new int[commands.length]; int idx = 0; for (int[] arg : commands) { int[] list = Arrays.copyOfRange(array, arg[0] - 1, arg[1])..
-
프로그래머스 : 프린터코딩테스트 문제 풀이/프로그래머스 2023. 11. 20. 00:01
문제 설명 내 코드 import java.util.*; class Solution { public int solution(int[] priorities, int location) { int answer = 0; Queue q = new LinkedList(); for (int i = 0; i < priorities.length; i++) { q.offer(new int[]{priorities[i], (location == i) ? 1 : 0}); } Arrays.sort(priorities); int maxIdx = priorities.length - 1; while (!q.isEmpty()) { int[] get = q.poll(); if (get[0] != priorities[maxIdx]) q.of..
-
프로그래머스 : 위장코딩테스트 문제 풀이/프로그래머스 2023. 11. 20. 00:01
문제 설명 내 코드 package codingtest.programmers; import java.util.HashMap; public class Test02 { public static int solution(String[][] clothes) { int answer = 0; HashMap h = new HashMap(); for (String[] s: clothes) { h.put(s[1], 0); } if (h.size() == 1) return clothes.length; for (String[] s: clothes) { h.put(s[1], h.get(s[1]) + 1); } for (int i : h.values()) { answer += i * (1 + answer); } return ans..