코딩테스트 문제 풀이/프로그래머스
-
프로그래머스 : 홀수 vs 짝수코딩테스트 문제 풀이/프로그래머스 2023. 12. 4. 00:01
스트림 어렵다 ;-; 내 코드 import java.util.Arrays; import java.util.stream.IntStream; class Solution { public int solution(int[] num_list) { return Math.max( IntStream .range(0, num_list.length) .filter(i -> i % 2 == 0) .map(i -> num_list[i]) .sum() , IntStream .range(0, num_list.length) .filter(i -> i % 2 != 0) .map(i -> num_list[i]) .sum() ); } } 스트림을 한개만 열어서 작성해보고 싶었는데, 도저히 방법이 떠오르지 않았다. 다른사람 코드 구경! 다..
-
프로그래머스 : 공백으로 구분하기 2코딩테스트 문제 풀이/프로그래머스 2023. 12. 4. 00:01
이번 문제는 생각보다 어려웠다. 공백 문자가 연속으로 여러개 나오는 경우도 있었기 때문에 어렵게 느껴졌던 것 같다. 내 코드 얻어걸림.. import java.util.Arrays; import java.util.stream.*; class Solution { public String[] solution(String my_string) { return Arrays .stream(my_string.split(" ")) .filter(s -> !"".equals(s)) .collect(Collectors.toList()) .toArray(new String[0]); } } 우와 스트림으로 풀이한 다른사람의 풀이가 있는지 구경하러 들어갔다가 정규식을 이용해 깔끔하게 풀이한 사람의 코드를 발견하였다. 정규식 이..
-
배열의 원소만큼 추가하기코딩테스트 문제 풀이/프로그래머스 2023. 12. 1. 00:01
그냥 풀면 쉬운 문제인데 Stream을 사용하려고 하니까 너무 어려운 문제였다. Chat 코드 🙈 import java.util.Arrays; import java.util.stream.IntStream; class Solution { public int[] solution(int[] arr) { return Arrays .stream(arr) .boxed() .flatMapToInt(i -> IntStream.range(0, i).map(n -> i)) .toArray(); } } int 배열을 boxed()를 사용해서 wrapper 객체 배열로 변환 한 뒤, flatMapToInt() 메서드를 사용하여 값을 만들고 toArray() 메서드를 사용하여 int배열로 반환하는 코드를 만들어냈다. flatM..
-
꼬리 문자열코딩테스트 문제 풀이/프로그래머스 2023. 12. 1. 00:01
내 코드 import java.util.Arrays; import java.util.stream.Collectors; class Solution { public String solution(String[] str_list, String ex) { return Arrays .stream(str_list) .filter(s -> !s.contains(ex)) .collect(Collectors.joining()); } } 오 세상에 또 풀렸다 진짜 기분 좋음 🤓✏️ 새로 알게 된 메서드 collect(Collectors.joining()) 스트림의 모든 요소를 하나의 문자열로 합쳐주는 기능을 한다. 이 메서드는 3가지 형태로 사용할 수 있다. 1. 기본형태 collect(Collectors.joining()..
-
뒤에서 5등까지코딩테스트 문제 풀이/프로그래머스 2023. 12. 1. 00:01
내 코드 import java.util.Arrays; class Solution { public int[] solution(int[] num_list) { return Arrays .stream(num_list) .sorted() .limit(5) .toArray(); } } 와우 스트림으로 처음 풀어봄! 🙈 뭔가 디비 쿼리짜는 기분이다 🙊 그런데 소요 시간이 많이 길어진 느낌이 들어서 확인해보았다. 👇이건 스트림으로 작성한 결과 이건 스트림 사용하지 않고 Arrays만 사용 import java.util.Arrays; class Solution { public int[] solution(int[] num_list) { Arrays.sort(num_list); return Arrays.copyOf(num..
-
프로그래머스: 마지막 두 원소코딩테스트 문제 풀이/프로그래머스 2023. 11. 27. 00:01
내 코드 class Solution { public int[] solution(int[] num_list) { int idxLast = num_list.length; int[] answer = new int[idxLast + 1]; System.arraycopy(num_list, 0, answer, 0, idxLast); answer[idxLast] = answer[idxLast - 1] > answer[idxLast - 2] ? answer[idxLast - 1] - answer[idxLast - 2] : answer[idxLast - 1] * 2; return answer; } }
-
프로그래머스: 코드 처리하기코딩테스트 문제 풀이/프로그래머스 2023. 11. 27. 00:01
내 코드 class Solution { public String solution(String code) { String answer = ""; int mode = 0; for (int i = 0; i < code.length(); i++) { if (code.charAt(i) == '1') mode = 1 - mode; else if (i % 2 == mode) answer += code.charAt(i); } return "".equals(answer) ? "EMPTY" : answer; } } 조건 1. code의 i번 인덱스 자리가 1이면 mode 스위칭 ( 0 또는 1 ) 조건 2. mode = 0 일 때 , i가 짝수면 = mode == 0 && i % 2 == 0 = i % 2 == mode ..
-
프로그래머스: 이어 붙인 수코딩테스트 문제 풀이/프로그래머스 2023. 11. 26. 00:01
재미있는 문제를 발견했다 홀수인 숫자를 이어 붙인 값과 짝수인 숫자를 어어 붙인 값을 더한 결과 값을 출력하시오 내 코드 class Solution { public int solution(int[] num_list) { int danwiE = 1, danwiO = 1; int e = 0, o = 0; for (int i = num_list.length - 1; i >= 0; i--) { if (num_list[i] % 2 == 0) { e += danwiE * num_list[i]; danwiE *= 10; } else { o += danwiO * num_list[i]; danwiO *= 10; } } return e + o; } } 내 코드 2 class Solution { public int solu..
-
프로그래머스: 수열과 구간 쿼리 2코딩테스트 문제 풀이/프로그래머스 2023. 11. 26. 00:01
이번 문제는 이해가 조금 어려웠지만 성공! 내 코드 import java.util.*; class Solution { public int[] solution(int[] arr, int[][] queries) { int[] answer = new int[queries.length]; Arrays.fill(answer, Integer.MAX_VALUE); for (int j = 0; j < queries.length; j++) { for (int i = queries[j][0]; i queries[j][2]) { answer[j] = Math.min(answer[j], arr[i]); } } if (answer[j] == Integer.MAX_VALUE) answer[j] = -1; } return answ..