본문 바로가기

Algorithm/Programers - Java

(160)
[프로그래머스(Java)] 다음에 올 숫자 Level. 0 문제 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. * 제한사항 - 2 < common의 길이 < 1,000 - -1,000 < common의 원소 < 2,000 common의 원소는 모두 정수입니다. - 등차수열 혹은 등비수열이 아닌 경우는 없습니다. - 등비수열인 경우 공비는 0이 아닌 정수입니다. 풀이 class Solution { public int solution(int[] common) { int answer = 0; int a = common[1] - common[0]; int b = common[2] - common[1]; if(a==b) answer = common[co..
[프로그래머스(Java)] 최빈값 구하기 / sort Level. 0 문제 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. * 제한사항 - 0 < array의 길이 < 100 - 0 ≤ array의 원소 < 1000 풀이 import java.util.Arrays; class Solution { public int solution(int[] array) { int answer = 0; int[][] counts = new int[1001][2]; int maxn = 0; for(int i=0; i { return o2[1]!=o1[1] ? o2[1]-o1[1] : o2[0]-o1[0]..
[프로그래머스(Java)] OX퀴즈 Level. 0 문제 덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요. * 제한사항 - 연산 기호와 숫자 사이는 항상 하나의 공백이 존재합니다. 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않습니다. - 1 ≤ quiz의 길이 ≤ 10 - X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며, 각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다. - X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다. - -10,000 ≤ X, Y ≤ 10,000 - -20,..
[프로그래머스(Java)] 코드 처리하기 Level. 0 문제 문자열 code가 주어집니다. code를 앞에서부터 읽으면서 만약 문자가 "1"이면 mode를 바꿉니다. mode에 따라 code를 읽어가면서 문자열 ret을 만들어냅니다. mode는 0과 1이 있으며, idx를 0부터 code의 길이 - 1까지 1씩 키워나가면서 code[idx]의 값에 따라 다음과 같이 행동합니다. mode가 0일 때 - code[idx]가 "1"이 아니면 idx가 짝수일 때만 ret의 맨 뒤에 code[idx]를 추가합니다. - code[idx]가 "1"이면 mode를 0에서 1로 바꿉니다. mode가 1일 때 - code[idx]가 "1"이 아니면 idx가 홀수일 때만 ret의 맨 뒤에 code[idx]를 추가합니다. - code[idx]가 "1"이면 mode..
[프로그래머스(Java)] 한 번만 등장한 문자 / Collectors.groupingBy(), Collectors.joining() Level. 0 문제 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. * 제한사항 - 0 < s의 길이 < 1,000 - s는 소문자로만 이루어져 있습니다. 풀이 import java.util.Map; import java.util.TreeMap; // Key를 기준으로 자동정렬 class Solution { public String solution(String s) { String answer = ""; Map m = new TreeMap(); for(int i=0 ; i< s.length(); i++){ m.put(s.char..
[프로그래머스(Java)] 배열 만들기 2 / Integer.toBinaryString Level. 0 문제 정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다. * 제한사항 - 1 ≤ l ≤ r ≤ 1,000,000 풀이 import java.util.ArrayList; class Solution { public int[] solution(int l, int r) { int[] answer = {-1}; ArrayList list = new ArrayList(); for(int i=l/5; i r) break; String str = Integer.toString(i*5); str =..
[프로그래머스(Java)] 특이한 정렬 / sort, Integer.compare(), compareTo() Level. 0 문제 정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요. * 제한사항 - 1 ≤ n ≤ 10,000 - 1 ≤ numlist의 원소 ≤ 10,000 - 1 ≤ numlist의 길이 ≤ 100 - numlist는 중복된 원소를 갖지 않습니다. 풀이 import java.util.Arrays; class Solution { public int[] solution(int[] numlist, int n) { int[] answer = new int..
[프로그래머스(Java)] 전국 대회 선발 고사 / PriorityQueue, Stream ( range, filter, box, sorted, reduce, get) Level. 0 문제 0번부터 n - 1번까지 n명의 학생 중 3명을 선발하는 전국 대회 선발 고사를 보았습니다. 등수가 높은 3명을 선발해야 하지만, 개인 사정으로 전국 대회에 참여하지 못하는 학생들이 있어 참여가 가능한 학생 중 등수가 높은 3명을 선발하기로 했습니다. 각 학생들의 선발 고사 등수를 담은 정수 배열 rank와 전국 대회 참여 가능 여부가 담긴 boolean 배열 attendance가 매개변수로 주어집니다. 전국 대회에 선발된 학생 번호들을 등수가 높은 순서대로 각각 a, b, c번이라고 할 때 10000 × a + 100 × b + c를 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 3 ≤ rank의 길이 = attendance의 길이 ≤ 100 - rank..