본문 바로가기
반응형

Language/알고리즘 문제풀이37

프로그래머스 최솟값 만들기(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 최솟값 만들기 언어 : 자바(Java) 두 배열을 가지고 A배열의 값, B배열의 값을 곱했을 때 최소값이 나오는 경우를 구해야 하는데 1*5, 4*2, 4*4 이런식으로 한번씩만 곱할 수 있다 근데 문제를 슥 보면 결국 최솟값을 구하는 방법은 A배열 최대값 * B배열 최솟값 이런 식으로 곱한 뒤 더해주면 된다는 사실을 알 수 있는데 내 풀이방법은 아래와 같다 일단 A배열과 B배열을 정렬한 뒤 A배열은 0부터 진행해 최대값 B배열은 끝부터 진행해 최솟값을 가져와서 곱해준 뒤 이 값들을 더해서 반환하면 된다 프로그래머스에 바로 적용 가능한 코드는 아래와 같다 import java.util.Arrays; class Solution { public in.. 2019. 9. 17.
프로그래머스 올바른 괄호(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 올바른 괄호 언어 : 자바(Java) 괄호가 제대로 열리고 닫혔는지를 체크해서 제대로 열리고 닫혔으면 true, 아니면 false를 반환하는 문제인데 그냥 괄호 갯수가 맞으면 되는게 아니라 )( 처럼 괄호가 제대로 닫혔는지 확인을 해야 한다 내 풀이방법은 아래와 같은데 먼저 괄호들을 String 타입의 s로 받은 뒤 한글자식 잘라봐서 counter에 넣는데 "("면 counter에 +1 해주고 ")"면 counter에 -1 해주는데 여기서 else를 사용한게 어차피 "(" or ")" 만 들어오기 때문에 else if를 사용할 이유가 없다 그래서 괄호가 정상적으로 잘 닫혀서 0이라면 true를 반환 제대로 안닫혀서 0이 아니라면 false를 반환.. 2019. 9. 17.
프로그래머스 핸드폰 번호 가리기(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 핸드폰 번호 가리기 언어 : 자바(Java) String 타입의 핸드폰 번호를 받으면 뒤의 4글자만 제외하고 전부 *로 바꾸어주면 되는데 내 풀이방법은 아래와 같다 먼저 핸드폰 번호의 length에서 -4를 한 값을 num에 넣어둔 후 for 문을 돌려서 num보다 작을 경우에는 다 *로 넣고 num보다 큰 경우에는 숫자를 넣어줘서 마지막 4자리만 숫자로 가져올 수 있다 2019. 9. 16.
프로그래머스 하샤드 수(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 하샤드 수 언어 : 자바(Java) 하샤드 수를 간단히 설명하면 다음과 같은데 특정 숫자를 받아서 자리수별로 다 쪼갠 후에 합친다 그 다음에 받은 특정 숫자를 쪼개서 합친 수로 나눌 수 있으면 하샤드 수다 예를 들어보자면 10을 쪼개면 1, 0인데 합치면 1이다 10을 1로 나눌 수 있으니 이것은 하샤드 수! true를 반환하면 되고 만약 나누어지지 않을 경우에는 false를 반환하면 된다 내 풀이방법은 아래와 같은데 우선 받은 int값을 String으로 만든 후에 한글자씩 잘라내서 divisionSum에 합쳐서 넣어준다 이후 받은 int 값이 divisionSum 으로 나누어 떨어지면 하샤드 수이므로 true를 반환하고 그렇지 않을 경우에는 f.. 2019. 9. 16.
프로그래머스 평균 구하기(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 평균 구하기 언어 : 자바(Java) int를 담은 arr배열을 받아서 평균을 구한 후 반환하는 문제다 내 풀이방법은 아래와 같은데 일단 for문을 돌려가며 answer에 배열 값을 모두 더해준 후 배열 arr의 길이로 더한 값을 나눠주면 평균을 구할 수 있다 배열의 길이가 곧 값들의 개수니까.. 프로그래머스에 바로 적용할 수 있는 코드는 아래와 같다 class Solution { public double solution(int[] arr) { double answer = 0; for(int i = 0; i 2019. 9. 16.
프로그래머스 콜라츠 추측(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 콜라츠 추측 언어 : 자바(Java) Collatz라는 사람이 만들어낸 추측이라는데 숫자를 받은 다음에 짝수면 2로 나누고 홀수면 3을 곱하고 1을 더한다 그래서 1이 되면 횟수를 넣어 반환하고 500번까지 반복해도 1이 안나오면 -1을 넣어 반환하라는 문제다 내 풀이방법은 아래와 같은데 일단 값을 받아 반복을 501번동안 하는데 들어오는 값이 1일수도 있으므로 for문 가장 앞에 if를 넣어 1일 시에는 바로 끝내버린다 이후 값을 2로 나눠봐서 나머지가 없으면 짝수고 있음 홀수이므로 짝수면 /2를 하고, 홀수면 *3을 한 뒤 +1을 해 준다 홀짝 돌리면서 answer++ 해줘서 몇번 돌아갔는지 횟수를 계속 체크해 준다 그래서 결국 1이 되면 횟.. 2019. 9. 11.

반응형