본문 바로가기

프로그래머스39

[프로그래머스 LV3] 스킬 체크 / 자바 / 다익스트라 알고리즘 문제         레벨: Lv3알고리즘: 다익스트라 알고리즘 풀이시간: 1시간힌트 참조 유무: 유1 번째 시도   [알고리즘 설명]다익스트라 알고리즘으로 S를 기준으로, A를 기준으로, B를 기준으로 각각의 노드의 최소거리르 구해야 한다.그리하여출발점 -> A,B가 찢어지는 노드 -> 찢어지고 A가 가는 거리, 찢어지고 B가 가는 거리출발점 -> A가 가는 거리 + 출발점 -> B가 가는 거리 두 가지 경우를 다 고려할 수 있다.  import java.util.*;class Solution { public int solution(int n, int s, int a, int b, int[][] fares) { List> graph = new ArrayList(); for .. 2024. 7. 2.
[프로그래머스 LV3] 스킬 체크 테스트 / 자바 / DP 문제         레벨: 프로그래머스 -> 스킬체크 -> 중급자 알고리즘: DP풀이시간: 1시간힌트 참조 유무: 유1 번째 시도: 실패   [알고리즘 설명]규칙을 찾았다. 단계를 거듭하여 만들어낼 때 a x b x c가 가장 작은 배열 두개를 선택해야 한다는 것이다.그래서 아래와 같이 로직을 작성하였다. 그러나 예외를 빠드렸다. 기준을 잘못 잡은 것이었다.배열중 앞에 있는 배열을 [a,b]로 잡고 뒤에 오는 배열을 [b,c]로 잡았다. 문제는 뒤에오는 배열이 [b,c]가 앞에 있는 경우를 생각 안 한 것이었다. 예를 들어 [1,2] [3,1] 이렇게 되어있는 경우는 배열이 곱을 못하지만,  거꾸로 되어있을 때 [3,1] [1,2]는 사실 배열 곱이 가능한 경우의 수인 것이다.  import java.u.. 2024. 7. 2.
[프로그래머스 LV3] 연속 펄스 부분 수열의 합 / 자바 / DP 문제         레벨: LV3알고리즘: DP(쉬운버전 / cause: 1차원배열 사용)풀이시간:  1시간힌트 참조 유무: 유https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1 번째 시도   [문제 설명](1)    2 3 -6 1 3 -1 2 4            전체 연속배열 x -1 1 -1 1 -1 1 -1 1                   펄스배열-----------------------------   -2 3 6 1 -3 -1 -.. 2024. 6. 4.
항해99 26일차 TIl( 단어 변환 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 target -> start로 가는 길 찾기 DFS ? BFS? 이와 같은 단어 찾기 아니면 백트래킹 DFS 최소 횟수이니까 최단 거리? BFS 최소 횟수 = 최단 거리로 판단, BFS 구현 BFS를 이해하기 쉽게 디버깅 넣은 코드 import java.util.*; class Word { String name; int index; int cnt; Word(String name, int index, int cnt) { this.name= name; this.index = index; thi.. 2024. 4. 23.
항해 99 25일차 TIL( 게임 맵 최단거리 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 DFS 문제 DFS를 통해 동,서,남,북 위치 중 갈 수 있는 곳을 다 탐색한다. 이때 depth로 길이를 알 수 있다. 계속 최소 depth를 업데이트 한다. import java.util.*; class Solution { int[] x = new int[]{1,0,0,-1}; int[] y = new int[]{0,1,-1,0}; boolean[][] visited; int answer = Integer.MAX_VALUE; public int solution(int[][] maps) .. 2024. 4. 22.
항해99 24일차 TIL( 타겟 넘버 / 프로그래머스) 문제          프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1 번째 시도   DFS 이용마지막 노드까지 도착했을 때 타켓 숫자면 카운팅DFS 파라미터에 들어가야 할 것들DFS 실행시킬 배열깊이타켓 넘버이전합//dfs로 플러스 마이너스 다 붙여가며 해당 숫자 카운트import java.util.*;class Solution { int answer = 0; public int solution(int[] numbers, int target) { dfs(numbers, 0, target, 0); return answer; .. 2024. 4. 21.
항해99 23일차 TIL ( 배달 / 프로그래머스 ) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 가중치가 있는 그래프 해결법: 다익스트라 알고리즘 관계도에따라 map을 만든다. start에서 갈 수 있는 곳들을 탐색하고 disct배열에 기록해둔다. disct 에서 방문한 노드를 제외한 노드중에 가장 가까운곳으로 간다. 위의 사항들을 반복한다. import java.util.*; class Solution { boolean[] visited; int[] disct; int[][] map; int n; public int solution(int N, int[][] road, int K) .. 2024. 4. 20.
항해99 22일차 TIL(큰 수 만들기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 한 번에 정답을 도출할 수 있는가 Yes or No No, 숫자 가장 앞에서부터 큰 숫자를 고른다고 해도 안 되고 가장 작은 숫자를 뺀다고 해도 안된다. 뺄 수 있는 숫자 다 빼보고 탐색해보기 완전 탐색이라라고 하기엔 시간복잡도에서 걸릴 것 같다 다시 2번으로 돌아가기 한 번에 정답을 도출 할 수 있는가 Yes or No Yes, 탐욕스러운 알고리즘 정답을 만들어야 할 최소한의 숫자들을 뒤에 남겨놓고 앞에 숫자에서 하나 뽑는다. 그 과정을 반복한다. ex) 입출력 예2번 {}선택 존 {}도.. 2024. 4. 19.
항해 21일차 99 TIL (공원산책/프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 구현 문제여서 아이디어는 설명 안하겠다. isWalk: 갈 수 있는 길인지 확인하는 함수 separate: 방향, 거리를 계산해 {x,y}로 반환하는 함수 import java.util.*; class Solution { public int[] solution(String[] park, String[] routes) { int xLength = park[0].length(); int yLength = park.length; int[] startInd = new int[2]; startInd.. 2024. 4. 18.