본문 바로가기

Plo Algorithm

(32)
프로그래머스Lv1 문자열 내 p와 y의 개수 class Solution { boolean solution(String s) { s = s.toUpperCase(); return s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count(); } } 내가 직접 작성한 코드가 아닌 정리하면 제일 공부가 많이될법한 답안을 문제의 정답에서 가져왔다. s = s.toUpperCase(); toUpperCase() : 영어 대소문자가 섞인 String Type Data를 모두 대문자로 변환 toLowerCase() : 영어 대소문자가 섞인 String Type Data를 모두 소문자로 변환 문제에서는 대소문자를 구별하지않고 같은지만 비교하기 때문에 모두 대문자로 바꿔주었다...
프로그래머스Lv1 내적 import java.util.stream.IntStream; class Solution { public int solution(int[] a, int[] b) { return IntStream.rangeClosed(0,a.length-1).map(index -> a[index] * b[index]).sum(); } } - return IntStream.rangeClosed(0,a.length- 1) - IntStream : primitive Data인 int를 stream으로 다룰 수 있게 해준다. reangeClosed(0 , a.length-1) : 0에서 a배열의 길이-1한 만큼의 수를 반복한다. - map(index -> a[index] * b[index]).sum(); - map(index) ..
프로그래머스Lv1 나누어 떨어지는 숫자 배열 class Solution { public int[] solution(int[] arr, int divisor) { int[] arr1 = Arrays.stream(arr).filter(parameterArr -> parameterArr % divisor == 0).toArray(); arr1 = Arrays.stream(arr1).sorted().toArray(); if (arr1.length ==0) arr1 = new int[]{-1}; return arr1; } } 지금껏 풀어왔던 배열 문제들과 유사한 문제지만 매번 똑같은 방식으로 풀기보다 새로운 개념을 배우며 풀어보면 좋을 것 같아 Arrays.stream을 사용해서 풀어봤다. - Arrays.stream(arr) - 스트림은 데이터의 흐름이다..
프로그래머스Lv1 2016년 import java.time.LocalDate; class Solution { public String solution(int a, int b) { String answer = ""; LocalDate yearDay = LocalDate.of(2016 , a , b); answer = String.valueOf(yearDay.getDayOfWeek()); return answer.substring(0,3); } } - LocalDate yearDay = LocalDate.of(2016 , a , b); - LocalDateType 객체에 LocalDate.of(2016년 , a월 ,b일) LocalDate.of 함수를 활용해 2016년a월b일 값을 yearDay에 할당한다. - String.valueO..
프로그래머스 Lv1 부족한 금액 계산하기 class Solution { public long solution(int price, int money, int count) { long answer = 0; long sum = 0; for(long i = 0 ; i 0){ answer = 0; }else { answer = Math.abs(answer); } return answer; } } - for(long i = 0 ; i 0){answer = 0;} else {answer = Math.abs(answer);} 미리 만들어둔 answer 객체에 money - sum을 할당한 후 answer가 양수이면 answer에 0을 할당. answer가 음수이면 Math.abs()함수를 사용해 answer를 절대값으로 반환 후 할당한다.
프로그래머스 Lv1 x만큼 간격이 있는 n개의 숫자 class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; long count = x; for (int i = 0; i < n; i++) { answer[i] = count * (i + 1); } return answer; } } - long[] answer = new long[n]; - long Type의 n만큼의 크기를 가진 배열을 미리 선언 - long count = x; - int type의 파라미터 x를 그대로 사용하게되면 제한조건에 적합하지 않아 오답이 되므로 long type에 count라는 객체를 선언해 x를 담아준다. - for (int i = 0; i < n; i++) { answer[i] = ..
프로그래머스 Lv1 행렬의 덧셈 class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[] oneArr1 = arr1[0]; int[] oneArr2= arr1[1]; int[][] answer = new int[arr1.length][arr1[0].length]; for (int i = 0 ; i < arr1.length ; i++){ for (int j = 0 ; j < arr1[0].length ; j++){ answer[i][j] = arr1[i][j] + arr2[i][j]; } } return answer; } } = 2차원 배열 = - int[][] 2dArray = new int [행][열]; - dataType [][] = dataType [..
프로그래머스 Lv1 핸드폰 번호 가리기 class Solution { public String solution(String phone_number) { String answer = ""; String num = phone_number.substring(phone_number.length()-4 , phone_number.length()); String star = ""; for (int i = 0 ; i < phone_number.length()-3; i++){ star = "*".repeat(i); } answer = star + num; return answer; } } String text = phone_number.substring(phone_number.length()-4 , phone_number.length()); String T..