반응형

programmers 55

[프로그래머스] 3진법 뒤집기 - JAVA

프로그래머스 3진법 뒤집기 - JAVA 문제 설명 자연수 n이 매개변수로 주어진다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return. 제한 사항 n은 1 이상 100,000,000 이하인 자연수입니다. 문제 풀이 주어진 n을 3진법으로 변환 n % 3을 n이 0이 되기전까지 n / 3을 하며 반복함으로 3진법으로 변환할 수 있음. 변환한 3진법 수를 앞뒤로 뒤집는다. 다시 10진법으로 변환하는 return. 반전된 3진법 수의 뒷자리부터 3^i을 곱함으로 10진법으로 변환할 수 있음. 소스 코드 import java.util.*; class Solution { public int solution(int n) { int answer = 0; List list = ne..

[프로그래머스] 약수의 개수와 덧셈 - JAVA

프로그래머스 약수의 개수와 덧셈 - JAVA 문제 설명 두 정수 left와 right가 매개변수로 주어진다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 retrun. 제한 사항 1 ≤ left ≤ right ≤ 1,000 문제 풀이 left부터 right까지 for문으로 순회. 약수의 개수가 홀수인 경우는 제곱 수인 경우이므로 그 경우 빼고, 아닌 경우 더한다. 소스 코드 class Solution { public int solution(int left, int right) { int answer = 0; for (int i = left; i

[프로그래머스] 폰켓몬 - JAVA

프로그래머스 폰켓몬 - JAVA 문제 설명 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2 마리를 가져간다. 폰켓몬은 종류에 따라 번호를 붙여 구분. 같은 종류의 폰켓몬은 같은 번호를 가진다. 최대한 많은 종류의 폰켓몬을 포함해서 N/2 마리를 선택. 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return. 제한 사항 nums는 폰켓몬의 종류 번호가 담긴 1차원 배열입니다. nums의 길이(N)는 1 이상 10,000 이하의 자연수이며, 항상 짝수로 주어집니다. 폰켓몬의 종류 번호는 1 이상 200,000 이하의 자연수로 나타냅니다. 가장 많은 종류의 폰켓몬을 선택하는 방법이 여러 가지인 경우에도, 선택할 수 있는 폰켓몬 종류 개수의 최댓값 하나만 return ..

[프로그래머스] 체육복 - JAVA

프로그래머스 체육복 - JAVA 문제 설명 도둑이 들어, 일부 학생이 체육복을 도난당했음. 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려준다. 학생들의 번호는 체격순으로 매겨저 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어진다. 체육수업을 들을 수 있는 학생의 최대값을 return. 제한 사항 전체 학생의 수는 2명 이상 30명 이하입니다. 체육복을 도난당한 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다. 여벌의 체육복을 가져온 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다. ..

[프로그래머스] K번째수 - JAVA

프로그래머스 K번째수 - JAVA 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 떄, k번째에 있는 수를 구하려 한다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어진다. commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을때 나온 결과를 배열에 담어 return. 제한 사항 array의 길이는 1 이상 100 이하입니다. array의 각 원소는 1 이상 100 이하입니다. commands의 길이는 1 이상 50 이하입니다. commands의 각 원소는 길이가 3입니다. 문제 풀이 commands 배열 길이와 나온 결과 길이가 같음으로 commands 배열 길이만큼 answer 배열 생성. commands 배열을 ..

[프로그래머스] 내적 - JAVA

프로그래머스 내적 - JAVA 문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어진다. a와 b의 내적을 return. a와 b의 내적은 a[0]b[0] + a[1]b[1] + ... + a[n-1]*b[n-1]이다. 제한 사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 소스 코드 class Solution { public int solution(int[] a, int[] b) { int answer = 0; for(int i = 0; i < a.length; i++) { answer += a[i] * b[i]; } return answer; } }

[프로그래머스] 완주하지 못한 선수 - JAVA

프로그래머스 완주하지 못한 선수 - JAVA 문제 설명 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 retrun. 제한 사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 문제 풀이 참가자 중 완주자를 빠르고 효율적으로 찾기 위해 Hash를 사용. 동명이인이 존재하기 때문에 HashMap을 사용하여 동명이인의 수를 저장. 참가자 이름과 숫자(동명이인 수)를 HashMa..

[프로그래머스] 음향 더하기 - JAVA

프로그래머스 음향 더하기 - JAVA 문제 설명 정수들의 절대값을 차례대로 담은 정수 배열 abolutes와 이 정수들의 부로흘 차례대로 다음 불리어 배열 signs가 매개변수로 주어짐. 실제 정수들의 함을 구하여 return. 제한 사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 소스 코드 class Solution { public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for..

[프로그래머스] 로또의 최고 순위와 최저 순위 - JAVA

프로그래머스 로또의 최고 순위와 최저 순위 - JAVA 문제 설명 로또에 낙서가 되어 일부 번호를 알아볼 수 없게 되었음. 알아볼 수 없는 번호를 0으로 표기, 당첨 가능한 최고 순위와 처저 순위를 배열에 담아 return. 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어짐. 제한 사항 lottos는 길이 6인 정수 배열입니다. lottos의 모든 원소는 0 이상 45 이하인 정수입니다. 0은 알아볼 수 없는 숫자를 의미합니다. 0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다. lottos의 원소들은 정렬되어 있지 않을 수도 있습니다. win_nums은 길이 6인 정수 배열입니다. win_nums의 모든 원소는 1 이상 45 이하..

[프로그래머스] 모의고사 - JAVA

프로그래머스 모의고사 - JAVA 문제 설명 수포자 삼인방은 모의고사에서 수학 문제를 전부 찍으려 한다. 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어진다. 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 retrun. 제한 조건 시험은 최대 10,000 문제로 구성되어있습니다. 문제의 정답은 1, 2, 3, 4, 5중 하나입니다. 가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요. 문제 풀이 수포자 삼인방이 찍는 방식의 반복되는 패천을 찾아 저장. 수포자 별로 answers에서 몇개의 정답을 맞힌지 저장. 가장 많이 맞힌 점수를 찾음. 가장 많은 문제를 맞힌 사람이 누구인지 리스트에 저장 배열에 담아 return 소스 코드 im..

반응형