본문 바로가기

코딩테스트26

BFS / DFS 정리 (진행중) DFS : Root Node 혹은 다른 임의의 Node에서 다음 분기(Branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법이다. Stack 혹은 재귀함수(Recursion) 으로 구현된다. 경로를 탐색할 때 한 방향으로 갈 수 있을 때까지 계속 가다가 더 이상 갈 수 없게되면 다른 방향으로 다시 탐색을 진행 모든 노드를 방문하는 경우에 이 방법을 사용한다.재귀 함수를 사용할 때에는 종료 조건을 꼭 명시해야 함 재귀 함수를 사용할 때에는 종료 조건을 꼭 명시해야 함 BFS : Root Node 혹은 다른 임의의 노드에서 인접한 노드를 먼저 탐색하는 방법이다. Queue를 사용해서 구현한다. 2024. 4. 19.
[2차원 배열 서로 다른 기준으로 정렬] 인사고과 https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡문제 분석 요약 [근무태도점수, 동료평가점수] 점수 합 = 근무태도 점수 + 동료 평가 점수 1. 기준 미달 사원 제외 2. 제외하고 남은 사원 점수 합 내림차순 정렬하여 등수 매기기 3. 정렬할 때, 완호의 점수 위치가 바뀌므로 원호의 점수를 따로 저장 💡알고리즘 설계 1. 정렬하기 근무 태도 점수로 일단 내림차순을 하고, 근무 태도 점수가 동일할 경우, 동료 평가 점수로 오름차순 정렬한다... 2024. 4. 4.
[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.