[프로그래머스 / Java] 연속 펄스 부분 수열의 합
·
CodingTest/Algorithm
1. 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 요약]부분 수열의 합 중 가장 큰 값을 구하라 2. 생각1. 코딩테스트는 두 가지 유형이 있지문제가 길어 문제가 요구하는 방향을 이해하면 풀 수 있는 문제와문제가 짧어 뭘 구하라는지 알겠는데 어떻게 구해? 하는 문제이 문제는 후자의 경우... 문제 보자마자 든 생각: 뭐 어떻게 구해?2. 펄스 수열 이용해서 2개의 배열 만드는 것까지는 쉬움3. "수열의 부분 수열의 최댓값" 이거 구하는게 관건같은데...하나씩 다 만들어보기에는 sequence의 길이 제한이 커서 안될꺼같다4. 30분정도 고민해보고 인터넷 찾아봤는데 이미 "카데인 알고리즘"..
[프로그래머스 / Java] 입국심사
·
CodingTest/Sorting & Thinking
1. 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 요약]모든 사람이 심사를 받는데 걸리는 시간의 최솟값 구하기숫자의 범위가 크다 2. 생각대로 풀기숫자의 범위가 크다 -> 이분 탐색 (코드 설명 주석은 AI 활용)import java.util.Arrays;class Solution { public long solution(int n, int[] times) { // n: 입국심사를 기다리는 사람 수 // times: 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 // 심사 시간을 오름차순으로 정렬 Arrays.sort(..
[프로그래머스 / Java] 징검다리 건너기
·
CodingTest/Sorting & Thinking
1. 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [문제 요약]최소 몇 명이 건널 수 있는지 구하기숫자가 적힌 배열, 건널 수 있는 길이숫자의 범위가 크다 (원소의 값이 최대 2억) 2. 생각대로 풀기숫자의 범위가 크기 때문에 무작정 반복문을 돌리면 안된다.N명이 건널 수 없다면, N보다 큰 수의 사람들도 건널 수 없음.N명이 건널 수 있다면, N보다 작은 수의 사람들도 건널 수 있음.-> 이진탐색으로 좁혀가면서 N찾기import java.util.*;class Solution { public int solution(int[] stones, int k) { int left = ..
[프로그래머스 / Java] 가장 먼 노드
·
CodingTest/BFS
1. 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr[문제 요약]1번 노드에서 가장 멀리 떨어진 노드의 갯수 구하기n개의 1~n까지 적힌 노드가 있는 그래프가장 멀리 떨어진 노드: 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드 2. 생각대로 풀기최단 경로 문제 -> 가중치가 없다 -> 시작점이 여러개가 아니다 -> BFSimport java.util.*;class Solution { ArrayList> graph = new ArrayList(); public int solution(int n, int[][] edge) { // 그래프 초기화 for ..