알고리즘/프로그래머스
-
[프로그래머스] 수식 최대화 / 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번 연속 나온다면 그 다음 사람은 징검다리를 ..
-
[프로그래머스] 호텔 방 배정 / 2019 카카오 개발자 겨울 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 4. 15:14
🖇️ 문제 링크 코딩테스트 연습 - 호텔 방 배정 "스노우타운"에서 호텔을 운영하고 있는 "스카피"는 호텔에 투숙하려는 고객들에게 방을 배정하려 합니다. 호텔에는 방이 총 k개 있으며, 각각의 방은 1번부터 k번까지 번호로 구분하고 있습니다. 처음에는 모든 방이 비어 있으며 "스카피"는 다음과 같은 규칙에 따라 고객에게 방을 배정하려고 합니다. 한 번에 한 명씩 신청한 순서대로 방을 배정합니다. 고객은 투숙하기 원하는 방 번호를 제출합니다. https://programmers.co.kr/learn/courses/30/lessons/64063 📝 문제 분석 처음에는 Set에 배정이 된 방 번호를 넣어두고, 원하는 방이 Set에 없을 때까지 + 1하는 방식으로 했었는데 효율성에서 시간초과가 났다. 시간을 줄..
-
[프로그래머스] 불량 사용자 / 2019 카카오 개발자 겨울 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 4. 15:14
🖇️ 문제 링크 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 사용자라는 이름으로 목록을 만들어서 당첨 처리 시 제외하도록 이벤트 당첨자 담당자인 "프로도" 에게 전달하려고 합니다. 이 때 개인정보 보호을 위해 사용자 아이디 중 일부 문자를 '*' 문자로 가려서 전달했습니다. https://programmers.co.kr/learn/courses/30/lessons/64064 📝 문제 분석 불량 사용자 목록에 매칭되는 유저들의 조합의 개수를 찾는 문제입니다. 비트마스킹으로 조합 중복 체크를 하고, 정규식을 사용해서 유저 아이디가 패턴과 매..
-
[프로그래머스] 튜플 / 2019 카카오 개발자 겨울 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 4. 15:14
🖇️ 문제 링크 코딩테스트 연습 - 튜플 https://programmers.co.kr/learn/courses/30/lessons/64065# 📝 문제 분석 실제로 사용할 숫자만 남기기 위해 { 와 }를 제거합니다. ','를 기준으로 숫자를 나누고 숫자들의 개수가 많을 수록 튜플의 앞부분에 위치하기 때문에, 숫자 개수 내림차순으로 정렬하여 출력합니다. ⌨️ 코드 import java.util.*; class Solution { public int[] solution(String s) { Map hm = new HashMap(); s = s.replaceAll("[{]|[}]", ""); for(String str : s.split(",")) { int n = Integer.parseInt(str); h..
-
[프로그래머스] 크레인 인형뽑기 게임 / 2019 카카오 개발자 겨울 인턴십 - JAVA알고리즘/프로그래머스 2021. 9. 4. 15:14
🖇️ 문제 링크 코딩테스트 연습 - 크레인 인형뽑기 게임 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). https://programmers.co.kr/learn/courses/30/lessons/64061 📝 문제 분석 열마다 하나씩 스택을 만들어서 인형들을 넣어주었다. 바구니가 위에서 쌓이는 구조이기 때문에 스택 자료구조를 이용했다. 바구니에 인형을 넣을 때 가장 위에 있는 인형..