본문 바로가기

프로그래머스

(9)
008. 폰켓몬[JAVA] 0. 사용 함수 Arrays.fill(배열, 값) >> (배열전체에 지정값으로 세팅해주는 함수) 1. 문제 내용 설명 주어진 n개의 폰켓몬 중 n/2개를 가져갈 수 있는데 최대한 다양하게 가져가는 것이 목표 제한 사항 nums는 폰켓몬의 종류 번호가 담긴 1차원 배열입니다. nums의 길이(N)는 1 이상 10,000 이하의 자연수이며, 항상 짝수로 주어집니다. 폰켓몬의 종류 번호는 1 이상 200,000 이하의 자연수로 나타냅니다. 가장 많은 종류의 폰켓몬을 선택하는 방법이 여러 가지인 경우에도, 선택할 수 있는 폰켓몬 종류 개수의 최댓값 하나만 return 하면 됩니다. 2. 문제 풀이 import java.util.HashSet; class Solution { public int solution(i..
007. 체육복[JAVA] 0. 사용 함수 Arrays.fill(배열, 값) >> (배열전체에 지정값으로 세팅해주는 함수) 1. 문제 내용 설명 체격순으로 출석번호를 매김. 그래서 여벌 체육복을 가지고 있으면 내 앞과 뒷번호의 사람에게만 체육복을 빌려줄 수 있음. 단, 내가 한 벌 이하이면 빌려줄 수 없음. (내가 여벌체육복이 있는데 만약 도둑맞았다면 결론 적으로 나는 한 벌이므로 빌려줄 수 없음) 제한 사항 전체 학생의 수는 2명 이상 30명 이하입니다. 체육복을 도난당한 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다. 여벌의 체육복을 가져온 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다. 여벌 체육복이 있는 학생만 다른 학생에게 체육복을 빌려줄 수 있습니다. 여벌 체육복을 가져온 학생이 체육복을..
[프로그래머스] 오랜 기간 보호한 동물(1) 아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. SELECT NAME, DATETIME FROM (SELECT A1.ANIMAL_ID, A1.NAME, A1.DATETIME, A2.ANIMAL_ID D_ANIMAL_ID FROM ANIMAL_INS A1 LEFT JOIN ANIMAL_OUTS A2 ON A1.ANIMAL_ID = A2.ANIMAL_ID ) T1 WHERE D_ANIMAL_ID IS NULL ORDER BY DATETIME LIMIT 3; 프로그래머스 문제 풀기 https://programmers.co.kr/learn/courses/30/parts/17046 프로..
[프로그래머스] 있었는데요 없었습니다 관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다. (문제 제목 정하는 분의 유머코드,, 난 취향저격이다) SELECT A1.ANIMAL_ID, A1.NAME from (SELECT T1.ANIMAL_ID , T1.NAME, T1.DATETIME as indate, T2.DATETIME as outdate from ANIMAL_INS T1, ANIMAL_OUTS T2 where T1.ANIMAL_ID = T2.ANIMAL_ID and to_number(to_char(T2.DATETIME, 'yyyymmddHH24MISS')) < to_number(to_..
[프로그래머스] 없어진 기록 찾기 천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요. (왜 이리 맨날 유실되는지,, 관리를 어떻게 하는거야,, 쒸익,,) select ANIMAL_ID, NAME from (select A.ANIMAL_ID , A.NAME, B.ANIMAL_ID as BID FROM ANIMAL_OUTS A LEFT JOIN ANIMAL_INS B ON A.ANIMAL_ID=B.ANIMAL_ID) T1 where T1.BID is null; 프로그래머스 문제 풀기 https://programmers.co.kr/learn/courses/30/parts/17046 프로그래머스 코드 중심의 개발자 채용. 스택..
006. 모의고사[JAVA] 0. 사용 함수 없음 1. 문제 내용 설명 수포자는 각자의 방식대로 수학 모의고사의 정답을 찍는데 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 정답이 주어졌을 때, 1번 2번 3번 수포자 중에 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담는 문제 제한 사항 시험은 최대 10,000 문제로 구성되어있습니다. 문제의 정답은 1, 2, 3, 4, 5중 하나입니다. 가장 높은 점수를 받은 사람이 여럿일 경우,..
004. 소수 만들기[JAVA] 0. 사용 함수 없음 1. 문제 내용 설명 주어지는 숫자 배열에서 숫자 3개를 뽑아, 그 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하는 문제 제한 사항 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 2. 문제 풀이 class Solution { public int solution(int[] nums) { int answer = 0; for(int i=nums.length-1; i>=2; i--){ for(int j=i-1; j >= 1; j--){ for(int l=j-1; l >= 0; l--){ if(isPrime(nums[i]+nums[j]+nums[l])){ answer++;..
002. [카카오 인턴] 키패드 누르기[JAVA] 0. 사용 함수 Math.abs(값) // 값을 절대 값으로 리턴함 1. 문제 내용 설명 기본적인 스마트폰 키패드를 생각하면 된다. 1 2 3 4 5 6 7 8 9 * 0 # 왼손엄지는 *에서 출발, 오른손엄지는 #에서 출발해서 주어지는 숫자를 어떤 손의 엄지로 누르는 것이 가장 빠른지 계산하는 문제. 오른손, 왼손 중 어떤 엄지손가락으로 누를지 L 또는 R로 표기해 String 결과 값을 뽑아내면 된다. 만약 왼손 엄지에서의 거리와 오른손 엄지에서의 거리가 같은 경우에는 사용자가 오른손잡이라면 오른손, 왼손잡이라면 왼손을 사용하게 된다. 제한 사항 numbers 배열의 크기는 1 이상 1,000 이하입니다. numbers 배열 원소의 값은 0 이상 9 이하인 정수입니다. hand는 "left" 또는 "..