알고리즘
-
[프로그래머스] 거리두기 확인하기 / 2021 카카오 채용연계형 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 6. 22:59
🖇️ 문제 링크 코딩테스트 연습 - 거리두기 확인하기 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 거리를 둬서 대기를 해야하는데 개발 직군 면접인 만큼 아래와 같은 규칙으로 대기실에 거리를 두고 앉도록 안내하고 있습니다. 대기실은 5개이며, 각 대기실은 5x5 크기입니다. 거리두기를 위하여 응시자들 끼리는 맨해튼 거리가 2 이하로 앉지 말아 주세요. https://programmers.co.kr/learn/courses/30/lessons/81302#fnref1 📝 문제 분석 BFS 탐색을 진행합니다. 거리가 3 이상이라면 더 이상 탐색하지 않아도 됩니다. 파티션으로 막혀 있을 경우 더 진행할 수 없으며, 자신이 아닌 응시자를 발견하면 FALSE..
-
[프로그래머스] 숫자 문자열과 영단어 / 2021 카카오 채용연계형 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 6. 22:59
🖇️ 문제 링크코딩테스트 연습 - 숫자 문자열과 영단어문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다.https://programmers.co.kr/learn/courses/30/lessons/81301 📝 문제 분석영어로된 숫자와 배열 인덱스를 맞춰놓고, replace를 사용해서 숫자로 변..
-
[프로그래머스] 동굴 탐험 / 2020 카카오 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 5. 00:03
🖇️ 문제 링크 코딩테스트 연습 - 동굴 탐험 오지 탐험가인 프로도 는 탐험 도중 n개의 방으로 이루어진 지하 동굴을 탐험하게 되었습니다. 모든 방에는 0부터 n - 1 까지 번호가 붙어있고, 이 동굴에 들어갈 수 있는 유일한 입구는 0번 방과 연결되어 있습니다. 각 방들은 양방향으로 통행이 가능한 통로로 서로 연결되어 있는데, 서로 다른 두 방을 직접 연결하는 통로는 오직 하나입니다. https://programmers.co.kr/learn/courses/30/lessons/67260 📝 문제 분석 💡 before[y] = x → y를 방문하기 전에 x를 방문 해야 됨 after[x] = y → x를 방문 후에 y를 방문 해야 됨 discovered[y] → y에 갈 수 있는 경로가 있다는 것을 확인은..
-
[프로그래머스] 경주로 건설 / 2020 카카오 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 4. 23:36
🖇️ 문제 링크 코딩테스트 연습 - 경주로 건설 건설회사의 설계사인 죠르디는 고객사로부터 자동차 경주로 건설에 필요한 견적을 의뢰받았습니다. 제공된 경주로 설계 도면에 따르면 경주로 부지는 N x N 크기의 정사각형 격자 형태이며 각 격자는 1 x 1 크기입니다. 설계 도면에는 각 격자의 칸은 0 또는 1 로 채워져 있으며, 0은 칸이 비어 있음을 1은 해당 칸이 벽으로 채워져 있음을 나타냅니다. https://programmers.co.kr/learn/courses/30/lessons/67259 📝 문제 분석 [0, 0]에서 [N - 1, N - 1]까지 도달하는 그래프 탐색 문제입니다. 탐색하는 방향에 따라서 비용이 달라지기 때문에 방향에 따른 최솟값을 저장하고 있어야 합니다. 여기서는 세로 방향과 ..
-
[프로그래머스] 보석 쇼핑 / 2020 카카오 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 4. 23:36
🖇️ 문제 링크 코딩테스트 연습 - 보석 쇼핑 개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다. 어피치는 쇼핑을 할 때면 매장 진열대의 특정 범위의 물건들을 모두 싹쓸이 구매하는 습관이 있습니다. 어느 날 스트레스를 풀기 위해 보석 매장에 쇼핑을 하러 간 어피치는 이전처럼 진열대의 특정 범위의 보석을 모두 구매하되 특별히 아래 목적을 달성하고 싶었습니다. https://programmers.co.kr/learn/courses/30/lessons/67258 📝 문제 분석 보석 종류의 개수를 구하고 시작합니다. (스트림 사용) 해시맵과 큐에 보석을 하나씩 넣습니다. 맵에 보석 전체 종류가 다 들어가게 되면, 모든 보석이 다 있어야..
-
[프로그래머스] 수식 최대화 / 2020 카카오 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 4. 23:36
🖇️ 문제 링크 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 같은 방식으로 결정하려고 합니다. 해커톤 대회에 참가하는 모든 참가자들에게는 숫자들과 3가지의 연산문자(+, -, *) 만으로 이루어진 연산 수식이 전달되며, 참가자의 미션은 전달받은 수식에 포함된 연산자의 우선순위를 자유롭게 재정의하여 만들 수 있는 가장 큰 숫자를 제출하는 것입니다. https://programmers.co.kr/learn/courses/30/lessons/67257 📝 문제 분석 연산자 세 개의 우선 순위 조합을 모두 만들어 봅니다. 우선 순위에 따라 스..
-
[프로그래머스] 키패드 누르기 / 2020 카카오 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 4. 23:36
🖇️ 문제 링크 코딩테스트 연습 - 키패드 누르기 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은* 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. https://programmers.co.kr/learn/courses/30/lessons/67256 📝 문제 분석 키패드의 번호들마다 좌표를 부여합니다. 1, 4, 7번을 눌러야 한다면 왼손, 3, 6, 9번을 눌러야 한다면 오른손을 사용하고 나머지를 누를 때는 현..
-
[프로그래머스] 징검다리 건너기 / 2019 카카오 개발자 겨울 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 4. 15:14
🖇️ 문제 링크 코딩테스트 연습 - 징검다리 건너기 카카오 초등학교의 "니니즈 친구들"이 "라이언" 선생님과 함께 가을 소풍을 가는 중에 징검다리 가 있는 개울을 만나서 건너편으로 건너려고 합니다. "라이언" 선생님은 "니니즈 친구들"이 무사히 징검다리를 건널 수 있도록 다음과 같이 규칙을 만들었습니다. 징검다리는 일렬로 놓여 있고 각 징검다리의 디딤돌에는 모두 숫자가 적혀 있으며 디딤돌의 숫자는 한 번 밟을 때마다 1씩 줄어듭니다. https://programmers.co.kr/learn/courses/30/lessons/64062 📝 문제 분석 💡 isMove(n, k, stones) = n명의 사람이 징검다리를 건널 수 있는가? n보다 작은 징검다리가 k번 연속 나온다면 그 다음 사람은 징검다리를 ..