본문 바로가기

알고리즘

(23)
프로그래머스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를 모두 소문자로 변환 문제에서는 대소문자를 구별하지않고 같은지만 비교하기 때문에 모두 대문자로 바꿔주었다...
항해 99 9일차 (알고리즘 모의고사) = 문제 = 항해 시작일을 입력하면 항해99 수료일을 n월n일 형식으로 리턴하는 메서드를 만드세요 import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { Main method = new Main(); System.out.println(method.solution(1, 18)); } public String solution(int day, int month) { String answer = ""; //Local Date today로 2022년 month월 day일의 객체를 생성 LocalDate today = LocalDate...
프로그래머스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 문자열을 정수로 바꾸기 class Solution { public int solution(String s) { int answer = Integer.parseInt(s); return answer; } } int type answer에 Integer.parseInt(s)로 Integer Type으로 형변환한 s를 할당해주기만 하면 되는 간단한 문제였다. 사실 Integer.parseInt를 하게되면 객체가 String type일 때의 부호까지 유지한채 변환하는지는 모르고 그냥 형변환 후에 한번 test해봤더니 해결됐다.. - Integer.parseInt() - Integer.parseInt(변환할 객체)를 할당해주게 되면 ()안의 객체를 integerType로 변환해준다. 기본 값은 10진수로 객체를 변환해 return해주며..
프로그래머스 Lv1 두 정수 사이의 합 class Solution { public long solution(int a, int b) { long answer = 0; if(a != b){ while(a < b){ answer += a++; } while (b
항해 99 8일차 (알고리즘) 항해 2주차의 시작이다. 항해 2주차의 시작은 일주일동안 집에 박혀있었으나 감염돼버린 코로나와 함께 깔끔하게 시작했다. -4일차- 28문제 中 28 Clear = Challenge 도전중 = 12문제 中 2 Clear 문제에 수학적 개념이 등장해서 덜컥 겁부터 먹었다. 자바로 문제해결 하는 것도 어려운데 수학적으로 계산까지 해가면서 풀어야하다니... 하는 생각을 했지만 생각보다 많이 간단한 문제였다. class를 통해 제곱근을 구해준 후 차근차근 단계만 밟아가면 되는 문제라큰 어려움이 없었던 것 같다. 이 문제가 유독 기억에 남는 이유는 후에 하샤드 수 , 콜라츠 추측 등의 문제를 마주했을 때 겁먹지 않고 풀어나갈 수 있게끔 해준 문제인 것 같다. 문제를 찬찬히 읽어보고 과정들을 하나 하나 주석으로 적은..
항해 99 5일차 (알고리즘) 알고리즘 주간의 첫날 새로운 팀원분들과 새로운 주제에 도전한다. 처음 마주한 알고리즘은 생각보다 머리를 많이 아프게 만들었지만 그럼에도 불구하고 잘 헤쳐나갈 수 있겠다는 생각이 들 때 까지 풀어나간 후 블로그로 마지막 정리를 해본다. -1일차- 28문제 中 11 Clear =직사각형 별찍기= =평균 구하기= =홀짝 출력하기= =가운데 숫자 가져오기= =문자열을 정수로 바꾸기= =핸드폰 번호 가리기= =없는 숫자 더하기= =두 정수 사이의 합= =x만큼 간격이 있는 n개의 숫자= =x만큼 간격이 있는 n개의 숫자= =행렬의 덧셈= 하나 하나 코드에대한 해석까지 정리하고 싶지만 알고리즘을 처음 접한 지금 내일을 위해 일찍 잠들 필요가 있을 것 같아 오늘은 힘들 것 같다.. 알고리즘을 처음 접하며 혼자서 완벽..