Lv 3. 징검다리 건너기
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  이문제는 징검다리를 건널 수 있는 최대 사람 수를 구하는 문제다.stones 배열은 징검다리의 각 위치가 견딜 수 있는 최대 사람 수를 나타내며,k는 건널 수 없는 돌의 연속 개수를 의미한다.이 문제는 이분 탐색을 통해 최적의 값을 찾는 방식으로 풀 수 있다.사람 수의 범위를 최소 1명부터 최대 징검다리 배열의 최댓값까지로 설정한다.이분 탐색을 통해 사람 수의 중간값(mid)을 사용해사람들이 징검다리를 건널 수 있는지 확인한다. find 메서..
Lv 3. 섬연결하기
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/42861?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  유니온파인드, 크루스칼 알고리즘을 활용하여 문제를 풀었다.제시된 N개의 꼭지점의 시작점과 끝점 가중치가 주어졌을때 주어진 시작점,끝점,가중치 가 담긴  costs 2차원배열을 Arrays.sort() 활용하여 가중치기준으로 오름차순 기준 정렬을 해준다.union find method를 구현하고 parent 배열을 구현하여 정렬된 costs 배열을 순회하면서 두 시작점과 끝점이 연결되어있다면 pass연결되지 않았다면 u..
Lv 3. 가장 먼 노드
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이번 문제는 Dijkstra 기법을 활용하여 최단거리를 ans[] 배열에 저장하고최단 거리중 가장 큰값의 갯수를 세어반환하는 형식으로 풀이하였다. 이차원 배열을 통해 node간의 간선 연결정보를저장하였더니 메모리 초과가 나타나 ArrayList를 활용하여 간선 연결된 것만 data 저장을하는 방식으로 풀어내었다.   // 다익스트라 dijkstra algorithm 최단경로 algorithm// ..
Lv 2. 행렬의 곱셈
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   arr1 의 크기가 answer 배열의 행갯수, arr2의 크기가 answer 배열의 열갯수가 된다.  i 로 answer의 열, j로 행을 돌아다니며 그 행의 값을k로 arr1의 행 * arr2의 열 을 돌면서 더해준다.  class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer =..
Lv 3. 방금 그 곡
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr// 시간계산 // musicinfo 를 돌아가면서 끝시간 - 시작시간으로 문자열길이 확정// 배열길이만큼 musicinfo 의 악보를 차례대로 집어넣음 끊기면 어쩔수없// 거기서 m이라는 기억한 멜로디가 존재하는지 확인하되 끝부분이 #이면 안된다. ㅇㅋ? // String.contains로 만들면되겠네그리고 만약 Contains 가 같으면 X// 배열말고 문자열로 해도되겠다.// Map에 저장하자 S..
Lv 3. 보석 쇼핑
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/67258?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   투포인터와 슬라이딩 윈도우 알고리즘을 활용하여풀이하였다.맨처음 생각한 것은 시작과 끝 두개의 지점을 정하고끝지점에서 하나씩 줄여나가고 보석의 갯수가 떨어지면 시작점을 늘리는 방식으로고민하였으나 그 마저도 예외가 존재할 수 있어 시작과 끝점을 1부터시작해 끝점이 올라가다가 보석 갯수가 보석종류와 일치할때시작점을 올려보면서 보석종류와 보석갯수가 달라질때를 찾고 최저점 갱신을 ..
Lv 3. 스티커 모으기
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12971 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr// DP // 1번째 스티커를 선택할때 끝 스티커를 선택하지 못하게// 마지막 스티커를 선택할때 끝 스티커를 선택할 수 있게import java.util.*;class Solution { public int solution(int sticker[]) { int n = sticker.length; // 스티커가 1개인 경우 바로 리턴 if (n == 1) re..
Lv 3. 베스트 앨범
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/42579?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  HashMap을 활용하여 Genre가 이미 존재하는지 확인하고Music은 새로 받을때마다 하나의 객체를 만들어주고Genre에 존재하는 pq에 집어넣어주면서 자동정렬해주었다.관건은 HashMap을 정렬하는데서 오류가 발생하였고Collections.sort로 정렬하려 하였으나 Map과 Set같은 경우List 형태가 아니어서 정렬이 불가능하다는것을 알았다.HashMap에 존재하는..
Lv 2. 다리를 지나는 트럭
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  과거풀려고 시도했었으나문제의 bridge_length가 시간마다 1씩 줄어든다는조건을 문제를 읽고 제대로 파악하지 못해풀지못했던 기억이 난다.문제를 꼼꼼히 읽어보면 다리길이가 2라면 건너는데 2초가걸린다는것을 이해할 수 있다.그이외에는 어려운 부분이 없다.Queue와 Node라는 클래스를 사용하여객체지향적으로 풀어보도록 노력했다. //Queue 사용해서 하면될듯// Node 사용import java..
Lv 3. 기지국 설치
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12979?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr// 단위가 ㅈㄴ큼 아파트가 2억채 일수 있다.// 그래서 최적화가 중요한데 // 일단 범위가 얼마나 커버할 수 있나.가 중요할듯// 나누기와 퍼센트 활용// 이미 설치된 station 기준으로 넘어가자. // class Solution { public int solution(int n, int[] st, int w) { int ans = 0; i..