본문 바로가기

공부/알고리즘49

[프로그래머스]12914_멀리 뛰기_DP Java 풀이 사이트 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 개념 및 풀이 DP를 이용해서 풀 수 있는 문제 마지막 칸을 가기 위해서 한칸 OR 두칸 을 선택할 수 있음 결국 N-1, N-2를 더하면 되는 것. 코드 class Solution { public long solution(int n) { long answer = 0; long dp [] = new long [2001]; dp[1] = 1; dp[2] = 2; for(int i=3;i 2023. 9. 6.
[Java]이진탐색 총 정리(상한upper bound, 하한lower bound, 중복 고려, while문 범위 설정,Arrays.binarySearch()메소드 등) 이진탐색 Binary Search : 정렬된 배열에서 탐색 범위를 절반씩 좁혀가며 데이터를 찾는 것 시간복잡도 : O(log N) 중복에 대해 고려하지 않은 경우 - 찾고자하는 key가 존재하는지만 알아내면 됨 - 메커니즘 1. 탐색 범위 내의 배열의 중간 인덱스를 구한다. 2. 중간 인덱스의 값과 key의 값을 비교한다. 3. 값이 중간 값보다 작다면 왼쪽 부분을, 크다면 오른쪽 부분을 탐색하고, 같다면 해당 인덱스를 반환하고 종료한다. - 주의! 자료형의 최댓값 넘지 말기 보통 mid = (start + end) / 2 라고 표현하지만, 만약에 start + end 가 자료형의 최댓값을 넘어선다면 자바에서는 Overflow 오류가 발생 -> mid = start + (end - start) / 2 로.. 2023. 5. 19.
[프로그래머스]42840_모의고사_완전탐색 Java 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답은 길이를 알 수 없는 타입인데 반환 타입이 int[] 여서 곤란했다. 그래서 두번째 코드에는 좀 안예쁘게 되있는데 프로그래머스에서 solution 옆에 반환형을 내맘대로 바꿔도 정답으로 인정해주어 더 깔끔한 코드(첫번째에 있는 코드)로 바꿨다. 히히 풀이 코드 import java.util.*; class Solution { public ArrayList solution(int[] answe.. 2023. 2. 15.
[백준]20413_MVP 다이아몬드 (Easy)_그리디 Java 풀이 20413번: MVP 다이아몬드 (Easy) 20413번: MVP 다이아몬드 (Easy) 입력된 MVP 등급을 달성하기 위한 최대 누적 과금액을 만원 단위로 출력한다. www.acmicpc.net 풀이 각 월의 최대 금액은 그 등급의 최대 등급인데, 이전달의 영향을 받아 그것을 빼 주어야 한다. ex. 30 60 90 150 BSGG… 1달 2달 3달 4달 … 해당 달의 등급 B S G G … 이전달의 영향을 받은해당 달의 최대 금액 B S-B G-(S-B) G-(G-(S-B)) … 0≤B 2023. 2. 14.