본문 바로가기

코딩테스트/2024 코딩 테스트65

[ 프로그래머스 ] 중복된 숫자개수 문제 풀이 Stream 메소드를 이용하여 스트림에서 만족하는 요소만 반환한다. .filter() 메소드를 통해 array의 배열에 n 이 있으면 .count()로 n의 개수를 증가시킨다. * 여기서 .count()는 long타입이다. 하지만 결과를 정수로 반환해야하기 때문에 int로 형변환을 해줘야 된다! import java.util.Arrays; class Solution { public int solution(int[] array, int n) { return (int)Arrays.stream(array).filter(i -> i==n).count(); } }​ 결과 stream 메소드를 적절하게 잘 사용하면 코드의 가독성을 높이고 간단하게 짤 수 있어서 좋은 것 같다. 앞으로 for문과 stram.. 2024. 2. 11.
[ 프로그래머스 ] 배열 자르기 문제 풀이 1 1. answer(결과)의 방을 num2-num1+1로 정해준다. (배열은 인덱스가 0부터 시작하므로 1을 더해줘야 됨.) 2. for문을 사용하여 인덱스가 num1 부터 num2까지 돌려준다. 3. answer[i-num1]의 방에 조건에 해당하는 numbers[i]를 대입한다. 풀이 2 IntStream.rangeClosted로 num1부터 이런 종류의 문제를 매번 for문으로 만 해결했다. 하지만 다른 사람의 풀이를 보고선 이보다 더 깔끔하게 코드를 짤 수 있는 방법을 알아냈다. 바로 java.lang 페키지를 사용하는 것이였다. 이를통해서 시간 절약도 되고 코드가 눈에 바로 들어와 간결함을 주었다. 매번 나만의 방식대로 풀고 통과하면 거기서 끝이라고 생각했지만 앞으론 다른 사람의 풀.. 2024. 2. 7.
[프로그래머스] 주사위 게임 1 문제 풀이 ① a,b 모두 홀수일때는 &&연산자를 이용한다. ② a와 b중 하나만 홀수라면 || 연산자를 이용한다. ③ 절대값을 구할 때는 Math.abs() 메소드를 이용한다. Math.abs() Math.abs()는 두 수의 절대 값을 구할 때 사용된다. 위 문제 중 a와 b 모두 홀수가 아니면 |a-b| 를 얻는다고 하였으니 Math.abs(a-b);를 사용하면 된다. 결과 class Solution { public int solution(int a, int b) { int answer = 0; if(a%2==1 && b%2==1){ answer = (a*a) + (b*b); } else if(a%2==1 || b%2==1){ answer = 2*(a+b); } else { answer = Math.. 2024. 2. 3.
[프로그래머스] 길이에 따른 연산 문제 풀이 ① int len = num_list.length // num_list 배열의 길이 ② int sum = 0; // 원소의 합을 구할 때 sum에 누적 ③ int multiply = 1; //원소들의 곱을 구할 때 multiply에 누적 결과 class Solution { public int solution(int[] num_list) { int answer = 0; int len = num_list.length; int multiply = 1; int sum =0; for(int i=0; i=11){ answer = sum +=num_list[i]; } else { answer = multiply *=num_list[i]; } } return answer; } } 2024. 2. 3.