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

프로그래머스 - JAVA66

[JAVA] 프로그래머스 Lv.1 : 키패드 누르기 🔥 2020 카카오 인턴십 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 1. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 2. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 3. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 4. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 .. 2021. 4. 7.
[JAVA] 프로그래머스 Lv.1 : 두 개 뽑아서 더하기 🔥 월간 코드 챌린지 시즌 1 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 예제: Input: numbers : [2, 1, 3, 4, 1] Output: [2,3,4,5,6,7] Input: numbers : [5,0,2,7] Output: [2,5,7,9,12] 제한 조건: numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. Solution #1 import java.util.HashSet; import java.util.Set; class Solution { public in.. 2021. 4. 4.
[JAVA] 프로그래머스 Lv.1 : 모의고사 🔥 코딩 테스트 연습 > 완전 탐색 예제: answers return [1, 2, 3, 4, 5] [1] [1, 3, 2, 4, 2] [1, 2, 3] 제한 조건: 시험은 최대 10,000 문제로 구성되어있습니다. 문제의 정답은 1, 2, 3, 4, 5중 하나입니다. 가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요. Solution #1 import java.util.ArrayList; import java.util.Arrays; import java.util.List; class Solution { public int[] solution(int[] answers) { int[] one = new int[]{1, 2, 3, 4, 5}; int[] two = new .. 2021. 4. 4.
[JAVA] 프로그래머스 Lv.1 : 체육복 🔥 코딩 테스트 연습 > 탐욕법 (Greedy) 예제: n lost reserve return 5 [2, 4] [1, 3, 5] 5 5 [2, 4] [3] 4 3 [3] [1] 2 제한 조건: 전체 학생의 수는 2명 이상 30명 이하입니다. 체육복을 도난당한 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다. 여벌의 체육복을 가져온 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다. 여벌 체육복이 있는 학생만 다른 학생에게 체육복을 빌려줄 수 있습니다. 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다. Solution #1 class Solu.. 2021. 4. 4.
[JAVA] 프로그래머스 Lv.1 : 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 예제: Input: a :5, b : 24 Output: "TUE" 제한 조건: 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) Solution #1 class Solution { public String solution(int a, int b).. 2021. 4. 4.
[JAVA] 프로그래머스 Lv.1 : K번째수 🔥 코딩 테스트 연습 > 정렬 (Sort) 예제: array commands return [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] 제한 조건: array의 길이는 1 이상 100 이하입니다. array의 각 원소는 1 이상 100 이하입니다. commands의 길이는 1 이상 50 이하입니다. commands의 각 원소는 길이가 3입니다. Solution #1 import java.util.Arrays; class Solution { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; int index = 0 .. 2021. 4. 4.
[JAVA] 프로그래머스 Lv.1 : 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 예제: Input: s : "abcde" Output: "c" Input: s : "qwer" Output: "we" 제한 조건: s는 길이가 1 이상, 100이하인 스트링입니다. Solution #1 class Solution { public String solution(String s) { int length = s.length(); return (length % 2 == 0) ? String.valueOf(s.charAt((length - 1) / 2)) + s.charAt((length - 1) / 2 + 1) : String.valueOf(s.charAt(lengt.. 2021. 4. 4.
[JAVA] 프로그래머스 Lv.1 : 3진법 뒤집기 🔥 월간 코드 챌린지 시즌 1 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 예제: Input: n : 45 Output: 7 Input: n : 125 Output: 229 제한 조건: n은 1 이상 100,000,000 이하인 자연수입니다. Solution #1 class Solution { public int solution(int n) { int answer = 0; StringBuffer buffer = new StringBuffer(); while (n > 0) { buffer.append(n % 3); n /= 3; } String number = buffer.toStri.. 2021. 4. 4.
[JAVA] 프로그래머스 Lv.1 : 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 예제: Input: arr : [5, 9, 7, 10], divisor : 5 Output: [5, 10] Input: arr : [3, 2, 6], divisor : 10 Output: [-1] 제한 조건: arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다.array는 길이 1 이상인 배열입니다. Solution #1 import java.util.ArrayList; impor.. 2021. 4. 4.
[JAVA] 프로그래머스 Lv.1 : 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 예제: Input: a : 3, b : 5 Output: 12 Input: a : 3, b : 3 Output: 3 제한 조건: a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. Solution #1 class Solution { public long solution(int a, int b) { long answer = 0; for (int i = Math.min(a, b).. 2021. 4. 4.