본문 바로가기
반응형

전체 글1036

프로그래머스 평균 구하기(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.
프로그래머스 최대공약수와 최소공배수(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 최대공약수와 최소공배수 언어 : 자바(Java) 일단 최대공약수란? 두 수를 나눴을 때 (3, 12라 가정) 두 수를 같은 수로 나누었을 때 나머지가 0인 값 중에 가장 큰 수!! 그 다음으로 최소공배수란? 두 수를 계속 같은 수로 곱하다가 두 숫자의 값이 같아지는 경우!! (2와 5를 서로 *2*2*2 *5*5*5 이런 식으로 하다가 보면 10에서 같아짐) 그냥 정직하게 풀면 효율성에서 걸려서 유클리드 호제법을 사용해야 하는데 두 수를 곱한 뒤 최대공약수로 나누면 최소공배수를 구할 수 있다 즉 최대공약수를 먼저 구한 뒤 최소공배수를 구하면 된다는 것이다 내 풀이방법은 아래와 같은데 먼저 받은 두 값 중에서 큰 값을 먼저 구한 뒤에 큰 값을 가지.. 2019. 9. 11.
프로그래머스 DATETIME에서 DATE로 형 변환 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : DATETIME에서 DATE로 형 변환 SQL : MySQL 단순한 문제인데 문제는 DATETIME을 ####-##-##의 형태로 변환을 해야하는데 어떻게 하냐는 것이다!!! 내 풀이방법은 아래와 같은데 DATE_FORMAT(값, '원하는 형태'); 로 값의 형태를 변경할 수 있는데 2018-01-22 이런 형태로 바꾸기 위해서는 '%Y-%M-%D' 로 입력을 해 줘야한다 이것 말고도 다른 유형으로 변경하자면 아래 링크의 글을 참조해주면 된다 MySQL DATE_FORMAT() Function MySQL DATE_FORMAT() Function ❮ MySQL Functions Definition and Usage The DATE_FORMAT() .. 2019. 9. 9.
프로그래머스 오랜 기간 보호한 동물(2) 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 오랜 기간 보호한 동물(2) SQL : MySQL ANIMAL_INS 테이블과 ANIMAL_OUTS 두 테이블을 갖고 시작하게 되는데 여기서 ANIMAL_INS 테이블에 있는 DATETIME - ANIMAL_OUTS 테이블의 DATETIME을 해서 상위 2 행만 조회하라는 얘기다 내 풀이방법은 아래와 같은데 먼저 ANIMAL_OUTS로 JOIN을 시킨 뒤 ANIMAL_OUTS에 없는 값은 A.ANIMAL_ID IS NOT NULL로 다 빼버린다 이후 ORDER BY에 A.DATETIME(보호일) - B.DATETIME(입양일)을 해준 후 LIMIT 2로 2행만 뽑아오면 된다 2019. 9. 9.
프로그래머스 중성화 여부 파악하기 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 중성화 여부 파악하기 SQL : MySQL ANIMAL_INS 테이블에서 SEX_UPON_INTAKE가 'Neutered' or 'Spayed' 로 시작할 경우 중성화 컬럼에 O를 주고 그렇지 않을 경우에는 X를 줘서 ANIMAL_ID, NAME, 중성화 컬럼 이렇게 3개를 반환하는 문제인데 마지막으로 ANIMAL_ID를 기준으로 오름차순 정렬을 해 줘야 한다 내 풀이방법은 아래와 같은데 MySQL에서는 Oracle의 Decode 대신 IF를 사용해주면 되는데 SEX_UPON_INTAKE를 1부터 8까지, 1부터 6까지 잘라봐서 'Neutered' 혹은 'Spayed' 라면 O 아니면 X를 중성화 컬럼에 넣어줘서 반환하면 되는데 마지막에 ORDE.. 2019. 9. 9.

반응형