본문 바로가기

Algorithm

(402)
[프로그래머스(Java)] 주사위 게임 3 / Collections.sort() Level. 0 문제 1부터 6까지 숫자가 적힌 주사위가 네 개 있습니다. 네 주사위를 굴렸을 때 나온 숫자에 따라 다음과 같은 점수를 얻습니다. - 네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다. - 세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다. - 주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다. - 어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다. - 네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 ..
[프로그래머스(Java)] 연속된 수의 합 Level. 0 문제 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return 하도록 solution함수를 완성해 보세요. * 제한사항 - 1 ≤ num ≤ 100 - 0 ≤ total ≤ 1,000 - num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다. 풀이 import java.util.*; class Solution { public int[] solution(int num, int total) { int[] answer = new int[num]; int middle = total%num == 0 ? total/num ..
[프로그래머스(Java)] 분수의 덧셈 / 유클리드 호제법 Level. 0 문제 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. * 제한사항 - 0 = 1; i--){ if(totalSon % i == 0 && mother % i == 0){ totalSon /= i; mother /= i; } } int[] answer = {totalSon, mother}; return answer; } } https://school.programmers.co.kr/learn/courses/30/lessons/120808# 프로그래머..
[프로그래머스] [3차] 파일명 정렬 / stable_sort Level. 2 문제 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, 일반적인 정렬은 ["img1.png", "img10.png", "img12.png", "img2.png"] 순이 되지만, 숫자 ..
[프로그래머스(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..