본문 바로가기

코딩테스트27

[백준 S2] 헌내기는 친구가 필요하다 https://www.acmicpc.net/problem/21736💡문제 분석 요약  1. N x M 크기의 캠퍼스에서 상/하/좌/우 이동을 한다. 2.첫째 줄에는 캠퍼스의 크기를 나타내는 두 정수 N (1≤𝑁≤600$) , M (1≤𝑀≤600) 이 주어진다. 둘째 줄부터 캠퍼스의 정보들이 주어진다. O는 빈 공간, X는 벽, I는 도연이, P는 사람이다. I가 한 번만 주어짐이 보장된다. 💡알고리즘 설계  1. 도연이의 위치 좌표를 저장한다. 2. 저장한 도연이의 위치좌표에서 상/하/좌/우로 탐색해가며 P(사람)을 찾는다. 1. 도연이의 좌표를 DFS 메서드의 인자로 전달한다.2. 새로운 좌표를 'true'로 방문처리한다.3.  If문을 이용하여 새로운 좌표에 'P'가 있을 경우(찾고자 하는 것.. 2024. 5. 7.
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.