본문 바로가기
  • Jetpack 알아보기

프로그래머스 - JAVA66

[JAVA] 프로그래머스 Lv.1 : 다트 게임 🔥 2018 KAKAO BLIND RECRUITMENT 1. 다트 게임은 총 3번의 기회로 구성된다. 2. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 3. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 4. 옵션으로 스타상(*) , 아차상(#)이 존재하며 스타상(*) 당첨 시 해당 점수와 바로 전에 얻은 점수를 각 2배로 만든다. 아차상(#) 당첨 시 해당 점수는 마이너스된다. 5. 스타상(*)은 첫 번째 기회에서도 나올 수 있다. 이 경우 첫 번째 스타상(*)의 점수만 2배가 된다. (예제 4번 참고) 6. 스타상(*)의 효과는 다른 스타상(*)의 .. 2021. 6. 3.
[JAVA] 프로그래머스 Lv.1 : 크레인 인형뽑기 게임 🔥 2019 카카오 개발자 겨울 인턴십 예제: board moves result [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 제한 조건: board 배열은 2차원 배열로 크기는 "5 x 5" 이상 "30 x 30" 이하입니다. board의 각 칸에는 0 이상 100 이하인 정수가 담겨있습니다. 0은 빈 칸을 나타냅니다. 1 ~ 100의 각 숫자는 각기 다른 인형의 모양을 의미하며 같은 숫자는 같은 모양의 인형을 나타냅니다. moves 배열의 크기는 1 이상 1,000 이하입니다. moves 배열 각 원소들의 값은 1 이상이며 board 배열의 가로 크기 이하인 자연수입니다. Solution #1 impo.. 2021. 6. 2.
[JAVA] 프로그래머스 Lv.1 : 예산 🔥 Summer/Winter Coding (~2018) 예제: d budget result [1, 3, 2, 5, 4] 9 3 [2, 2, 3, 3] 10 4 제한 조건: d는 부서별로 신청한 금액이 들어있는 배열이며, 길이(전체 부서의 개수)는 1 이상 100 이하입니다. d의 각 원소는 부서별로 신청한 금액을 나타내며, 부서별 신청 금액은 1 이상 100,000 이하의 자연수입니다. budget은 예산을 나타내며, 1 이상 10,000,000 이하의 자연수입니다. Solution #1 import java.util.Arrays; class Solution { public int solution(int[] d, int budget) { int answer = 0; Arrays.sort(d); for (.. 2021. 6. 2.
[JAVA] 프로그래머스 Lv.1 : 로또의 최고 순위와 최저 순위 🔥 2021 Dev-Matching : 웹 백엔드 개발자 (상반기) 예제: arr result [1,1,3,3,0,1,1] [1,3,0,1] [4,4,4,3,3] [4,3] 제한 조건: lottos는 길이 6인 정수 배열입니다. lottos의 모든 원소는 0 이상 45 이하인 정수입니다. 0은 알아볼 수 없는 숫자를 의미합니다. 0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다. lottos의 원소들은 정렬되어 있지 않을 수도 있습니다. win_nums은 길이 6인 정수 배열입니다. win_nums의 모든 원소는 1 이상 45 이하인 정수입니다. win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다. win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다. Solution.. 2021. 6. 2.
[JAVA] 프로그래머스 Lv.1 : 같은 숫자는 싫어 예제: arr result [1,1,3,3,0,1,1] [1,3,0,1] [4,4,4,3,3] [4,3] 제한 조건: 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수 Solution #1 import java.util.*; public class Solution { public int[] solution(int[] arr) { Stack stack = new Stack(); for (int i : arr) { if (stack.isEmpty()) { stack.push(i); } else if (stack.peek() != i) { stack.push(i); } } int[] answer = new int[stack.siz.. 2021. 6. 2.
[JAVA] 프로그래머스 Lv.1 : 신규 아이디 추천 🔥 2021 KAKAO BLIND RECRUITMENT 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다. .. 2021. 6. 2.
[JAVA] 프로그래머스 Lv.1 : 폰켓몬 🔥 찾아라 프로그래밍 마에스터 예제: nums result [3,1,2,3] 2 [3,3,3,2,2,4] 3 [3,3,3,2,2,2] 2 제한 조건: nums는 폰켓몬의 종류 번호가 담긴 1차원 배열입니다. nums의 길이(N)는 1 이상 10,000 이하의 자연수이며, 항상 짝수로 주어집니다. 폰켓몬의 종류 번호는 1 이상 200,000 이하의 자연수로 나타냅니다. 가장 많은 종류의 폰켓몬을 선택하는 방법이 여러 가지인 경우에도, 선택할 수 있는 폰켓몬 종류 개수의 최댓값 하나만 return 하면 됩니다. Solution #1 import java.util.*; class Solution { public int solution(int[] nums) { Set set = new HashSet(); for.. 2021. 5. 16.
[JAVA] 프로그래머스 Lv.1 : 약수의 개수와 덧셈 🔥 월간 코드 챌린지 시즌 2 예제: left right result 13 17 43 24 27 52 제한 조건: 1 ≤ left ≤ right ≤ 1,000 Solution #1 class Solution { public int solution(int left, int right) { int answer = 0; for(int i = left; i 2021. 5. 16.
[JAVA] 프로그래머스 Lv.1 : 음양 더하기 🔥 월간 코드 챌린지 시즌 2 예제: absolutes signs result [4,7,12] [true,false,true] 9 [1,2,3] [false,false,true] 0 제한 조건: absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. Solution #1 class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for(int i = 0; i < abs.. 2021. 5. 14.
[JAVA] 프로그래머스 Lv.1 : 실패율 🔥 2019 KAKAO BLIND RECRUITMENT 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. - 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 .. 2021. 4. 16.