본문 바로가기

프로그래머스37

[프로그래머스 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.kr 1 번째 시도 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; } void dfs(int[] nu.. 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.
항해99 20일차 TIL( 전력망을 둘로 나누기 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 연결선이 가장 많은 숫자 구하기 그 숫자랑 연결되어 있는 선 하나씩 끊어보며 차이 업데이트하기 import java.util.*; class Solution { public int solution(int n, int[][] wires) { int group1N = 0; int group2N = 0; int[][] linesN = new int[n][2]; int k = 1; //linesN = 숫자마다 연결되어 있는 숫자 개수 구하기 for(int[] l : linesN) { l[0] = .. 2024. 4. 17.
[프로그래머스] 연속된 부분 수열의 합 / 자바 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 시작 인덱스를 i 끝 인덱스를 j 로 가정한다. i를 고정하고 j를 올려가면 총합을 올려간다. 만약 i ~ j 의 합이 주어진 k와 같거나 크다면 반복문을 멈춘단. 같다면 멈추고 i와j의 길이, i, j를 기록한다. i +1 하고 2 ~ 3 과정을 반복한다. 기록한 것들을 조건에 부합하게 정렬한다. 가장 앞에 있는 인덱스를 꺼낸다. import java.util.*; class Solution { public int[] solution(int[] sequence, int k) { int n.. 2024. 4. 16.