본문 바로가기

코딩테스트/프로그래머스

(8)
[Java][프로그래머스-코딩테스트 level1] 약수의 개수와 덧셈 o 요구사항 left ~ rigtht까지 각각 주어진 숫자의 약수의 개수를 구하고 홀짝을 판별한다 o 코드진행 1. 약수의 개수 구하기 2. 홀짝 여부 판별 3. 약수가 짝수이면 더하고, 홀수라면 뺀 값을 리턴 o 코드설계 1. 약수 개수 구하기 N의 약수는 자기자신 N을 제외하고는 N/2 보다 클 수 없다 예를 들어 12의 약수는 12를 제외하고는 7이상이 될 수 없다 이를 이용해 메소드 생성 2. 홀짝 여부 2로 나누어 나머지가 1이면 홀수 0이면 짝수 o 완성코드 class Solution { public int solution(int left, int right) { int answer = 0; for(int i=left; i
[Java][프로그래머스-코딩테스트 level1] 로또의 최고 순위와 최저 순위 o 요구사항 두 int형 배열 lottos, win_nums 을 매개값으로 받아 가능한 순위 --> b 일치하는 개수 만큼 순위가 올라간다 단 알아볼 수 없는 번호인 0의 개수 만큼 올라갈 수 있는 순위 --> a 정수형 배열 [a, b] 반환하기 o 코드진행 다른 방법들도 많지만 해당 문제는 import 없이 배열만 사용하였다. 필요한 메소드를 생성하여 인자값과 반환값 단계별로 넣는 방식으로 풀이하였다. o 코드설계 1. 배열의 요소를 크기별로 정렬하여 배열을 리턴하는 메소드 2. 두 배열 값 비교하여 일치하는 값 반환하는 메소드 3. 배열의 요소 중 0이 포함된 개수를 반환하는 메소드 4. 로또 맞은 개수를 인자값으로 순위를 반환하는 메소드 5. 현재 순위와 0개수를 인자값으로 받아 가능한 순위를 반..
[Java][프로그래머스-코딩테스트 level1] 폰켓몬 o 요구사항 매개변수 : N마리 폰켓몬의 종류 번호가 담긴 배열 nums return : N/2마리의 폰켓몬을 선택하는 경우의 수 중 가장 큰 값(단, 폰켓몬 종류를 다르게 선택할 때) 경우의 수 나누기 폰켓몬을 선택하는 경우는 폰켓몬의 종류가 모두 다를때에도 최대값이 N/2의 경우를 넘을 수 없다 예를 들어 폰켓몬이 10마리 그리고 종류가 모두 달라 10종류일 때도 10/2, 즉 5마리 밖에 선택할 수 없다. 때문에 폰켓몬 종류가 N/2 보다 적은 경우와 이 보다 많은 경우를 나누어 생각한다 o 코드진행 Java Set 컬렉션의 경우 순서에 상관없이 중복을 허용하지 않는다. 이를 이용해 폰켓몬 종류개수를 구한뒤 선택할 수 있는 폰켓몬을 개수를 반환하는 코드를 작성한다 o 완성코드 import java...
[Java][프로그래머스-코딩테스트 level1] 2016년 o 요구사항 두 자연수를 인자값으로 받아 요일을 반환하기 일주일은 7일이므로 월요일부터 일요일까지 7개중 1개를 결과값으로 return하게 된다 o 코드진행 매개값으로 주어지는 월(a)과 일(b)을 받아 총 지난 총 일자를 구한뒤, 7로 나눠 요일을 구한다 o 코드설계 월별로 날짜개수를 항목으로 하는 정수형 배열(intArr)을 생성 for 반복문을 사용하여 a값 전까지 배열intArr의 항목 더하고 b값으로 일자를 더한다 2016년 첫 시작은 금요일이므로 적당한 숫자를 넣어 시작요일을 맞춰준다 일주일은 7일이므로 7로 나눈 나머지를 구하고 switch() 구문을 이용하여 경우의 수 분기하기 o 완성코드 public class Solution { public String solution(int month..