본문 바로가기

전체 글63

[DFS] 혼자 놀기의 달인 https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡문제 분석 요약 상자 1번 2번 3번 4번 5번 6번 7번 8번 숫자 8 6 3 7 2 5 1 4 만약 1번상자-숫자8을 뽑을경우 뽑은 숫자인 8번이 적힌 상자에서 카드를 뽑는다 이미 연 상자 일 경우, 탐색을 종료한다. 1번상자(8) -> 8번상자(4) -> 4번상자(7) -> 7번상자(1) -> 1번상자(8) (X): 1번 상자는 이미 연 상자이므로 7번상자 까지가 첫번째 그룹이다. 💡알고.. 2024. 4. 2.
[Greedy] 구명보트 https://school.programmers.co.kr/learn/courses/30/lessons/42885 그리디 알고리즘 - 최적의 값을 구해야 하는 상황에서 사용되는 근시안적인 방법론으로 ‘각 단계에서 최적이라고 생각되는 것을 선택’ 해 나가는 방식으로 진행하여 최종적인 해답에 도달하는 알고리즘이다. - 이때, 항상 최적의 값을 보장하는것이 아니라 최적의 값의 ‘근사한 값’을 목표로 하고 있다. - 주로 문제를 분할 가능한 문제들로 분할한 뒤, 각 문제들에 대한 최적해를 구한 뒤 이를 결합하여 전체 문제의 최적해를 구하는 경우에 주로 사용된다. 위 문제에서, 주목해야 할 포인트가 몇가지 있다. 1. 구명보트는 최대 2명씩 밖에 탈 수 없다. 2. 2명이 탈때, 문제에서 주어지는 무게제한(lim.. 2024. 3. 27.
[공원산책] 좌표표현 https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 가로 길이 W ( sx ) 세로 길이 H ( sy ) ( 0 , 0 ) ( 0 , 1 ) ( 0 , 2 ) ( 1 , 0 ) ( 2 , 0 ) ( H-1, W-1 ) 좌표 표현 : (sy, sx) class Solution { public int[] solution(String[] park, String[] routes) { int sx = 0; // 이동 후 x좌표 int sy = 0; // .. 2024. 3. 24.
[Kakao] HashMap의 value가HashSet일때 - 신고결과받기 https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 풀이에 필요한 Map 정의 및 초기화 key는 유저아이디, value는 key를 신고한 유저의 아이디의 Set을 가진 Map 동일한 유저에 대한 신고횟수는 1회로 처리하기 때문에 중복을 없애기 위해 Set을 Value로 함 key는 유저아이디, value는 임의의 인덱스를 가진 Map을 정의 int[] answer = new int[id_list.length]; HashMap idxMap =.. 2024. 3. 19.
[그리디] Kakao - 두 큐 합 같게 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/118667#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 알고리즘 개념 - 그리디 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로,여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달 합니다. ->while(true)로 돌면서 제약조건을 걸어 최적의 해를 도출한다. 문제 해결 - 최적해를 구하기 위한 결정 포인트 정리 1. 모든 원소의 합이 홀수인.. 2024. 3. 18.
[유클리드 호제법] 숫자 카드 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public int solution(int[] arrayA, int[] arrayB) { int answer = 0; int gcdA = arrayA[0]; int gcdB = arrayB[0]; // 최대 공약수 구하기 for(int i=1;i 2024. 3. 17.