분류 전체보기 133

[프로그래머스] 시소 짝꿍 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 설명어느 공원 놀이터에는 시소가 하나 설치되어 있습니다. 이 시소는 중심으로부터 각각 2(m), 3(m), 4(m) 거리의 지점에 좌석이 하나씩 설치되어 있습니다. 두 명의 사람이 마주 보고 시소에 앉았을 때, 시소가 평형 상태를 유지하려면 양쪽에 작용하는 토크의 크기가 같아야 합니다. 즉, 각 사람의 무게와 시소 축과의 거리의 곱이 동일하다면, 두 사람은 "시소 짝꿍"이라고 할 수 있습니다.주어진 문제는 사람들의 몸무게 목록 we..

투 포인터 (Two Pointers)

투 포인터 (Two Pointers) 알고리즘이란?투 포인터(Two Pointers) 알고리즘은 배열이나 리스트에서 특정 조건을 만족하는 부분 구간을 빠르게 탐색하기 위해 사용하는 효율적인 알고리즘 기법입니다. 주로 정렬된 배열이나 리스트에서 연속된 부분 수열을 찾거나 특정 합을 구하는 문제에서 자주 활용됩니다. 이 방법은 두 개의 포인터를 사용하여 탐색을 진행하며, O(n)의 시간 복잡도를 제공하여 대량의 데이터를 효율적으로 처리할 수 있습니다. 투 포인터의 동작 원리투 포인터 알고리즘은 보통 두 가지 포인터를 사용하여 배열의 시작점과 끝점 또는 배열의 특정 부분을 탐색합니다. 이 두 포인터는 보통 다음과 같이 동작합니다:포인터의 초기화:하나의 포인터는 배열의 시작 위치(start)에, 다른 포인터는 ..

cs/알고리즘 2024.11.17

[프로그래머스] 연속된 부분 수열의 합 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/178870# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요이번 문제는 비내림차순(오름차순)으로 정렬된 수열에서 특정 조건을 만족하는 부분 수열을 찾아내는 문제입니다. 수열과 목표 합 k가 주어졌을 때, 다음과 같은 조건을 만족하는 부분 수열의 시작과 끝 인덱스를 찾아야 합니다. 문제 접근 방법문제를 해결하기 위해 투 포인터 알고리즘을 사용하였습니다. 이 방법은 효율적인 연속 부분 수열 탐색에 적합하며, 특정 조건을 만족하는 수열의 구간을 빠르게 탐색할 수 있습니다. 다음은 문제를 해..

[프로그래머스] N-Queen - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요이 문제는 N-Queens 문제로, 체스판 위에 n개의 퀸을 배치할 때 서로 공격할 수 없도록 하는 방법의 수를 찾는 문제입니다. 퀸은 체스판에서 가로, 세로, 대각선으로 이동할 수 있기 때문에 서로를 공격할 수 없는 위치에 놓는 것이 중요합니다. 접근 방법이 문제는 백트래킹(Backtracking) 기법을 사용하여 해결할 수 있습니다. 백트래킹은 해를 찾는 과정에서 불가능한 경로는 더 깊이 탐색하지 않고 가지를 치는 방식입니다...

[프로그래머스] 거리두기 확인하기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/81302#fn1 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명개발자를 희망하는 죠르디가 카카오에 면접을 보러 갔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 대기실에서 거리를 두고 앉아야 합니다. 대기실은 5개이며, 각 대기실은 5x5 크기로 구성되어 있습니다. 응시자들 간의 맨해튼 거리가 2 이하로 앉지 않도록 해야 하며, 파티션(X)으로 막혀 있는 경우에는 거리두기를 지킨 것으로 간주합니다.대기실의 구조는 다음과 같은 기호로 표현됩니다:P: 응시자가 앉아있는 자리O: 빈 테..

[프로그래머스] [PCCE 기출문제] 10번 / 공원 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/340198 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 설명지민이는 공원에 이미 많은 사람들이 깔아놓은 돗자리를 피해 자신이 가지고 온 돗자리를 깔고 싶습니다. 지민이가 깔 수 있는 돗자리는 정사각형 형태로, 각 돗자리의 한 변 길이는 리스트 mats에 주어집니다. 공원의 현재 자리 배치는 2차원 배열 park로 주어지며, -1은 빈 공간을 나타내고 알파벳은 이미 돗자리가 깔린 자리를 의미합니다.지민이가 가진 돗자리 중 공원에서 깔 수 있는 가장 큰 돗자리의 한 변 길이를 찾아 반환해야..

[프로그래머스] 택배 배달과 수거하기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명주어진 문제는 트럭의 배달 및 수거를 최소 이동 거리로 완료하는 방법을 찾는 것입니다. 트럭은 물류창고에서 출발하여 각 집을 순회하면서 택배를 배달하고 빈 택배 상자를 수거해야 합니다. 트럭의 최대 적재량은 cap으로 주어지며, deliveries와 pickups 배열이 각각 각 집에 배달할 택배 상자와 수거할 빈 택배 상자의 개수를 나타냅니다.접근 방식뒤에서 앞으로 순회:마지막 집부터 첫 번째 집까지 역순으로 순회합니다. 이는 ..

[프로그래머스] 카카오프렌즈 컬러링북 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/1829 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 설명카카오 프렌즈 컬러링북 문제는 2차원 배열로 주어진 그림에서 서로 연결된 같은 색상 영역의 개수와 가장 큰 영역의 넓이를 계산하는 문제입니다. 영역이란 상하좌우로 연결된 같은 색상의 공간을 의미합니다. 배열의 값이 0이면 색칠하지 않는 공간을 나타내며, 이 공간은 영역의 일부로 간주되지 않습니다.목표는 입력으로 주어지는 그림을 분석하여 총 몇 개의 색상 영역이 있는지, 그리고 가장 큰 영역의 넓이가 몇 칸인지 반환하는 것입니다.접근..

[프로그래머스] 단체사진 찍기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/1835 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명카카오프렌즈는 소풍 중 단체사진을 찍기 위해 일렬로 서고자 합니다. 각 프렌즈는 특정한 배치 조건을 원하며, 이 조건들을 모두 만족하는 경우의 수를 계산해야 합니다.조건의 형식은 다음과 같습니다:N~F=0: '네오'와 '프로도' 사이의 간격이 0이어야 합니다.R~T>2: '라이언'과 '튜브' 사이의 간격이 2칸 초과이어야 합니다.각 조건은 다음과 같은 요소로 이루어져 있습니다:첫 번째 글자와 세 번째 글자는 8명의 캐릭터 중 하나로,..

[프로그래머스] 빛의 경로 사이클 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/86052 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 설명격자(grid)에서 빛이 이동할 수 있는 경로 사이클을 찾는 문제입니다. 각 칸에는 'S', 'L', 'R' 중 하나가 써져 있으며, 빛이 이동할 때 다음과 같은 규칙을 따릅니다:'S': 빛은 직진합니다.'L': 빛은 좌회전합니다.'R': 빛은 우회전합니다.격자에서 빛이 이동할 때 경계를 넘어갈 경우 반대쪽 끝으로 다시 돌아옵니다. 예를 들어, 위쪽 가장자리를 벗어날 경우 같은 열의 맨 아래쪽에서 다시 시작합니다.이 문제의 목표는..