[프로그래머스 JAVA] 150368. 이모티콘 할인행사
·
코딩테스트/프로그래머스
문제 링크 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr접근 방법각 이모티콘은 10%, 20%, 30%, 40% 중 하나의 할인율을 가질 수 있습니다.이모티콘의 개수가 최대 7개이므로 가능한 할인 조합의 수는 최대 4^7 = 16,384개입니다.따라서 모든 할인율 조합을 dfs로 확인해도 충분히 해결할 수 있습니다.소스 코드class Solution { int maxSum = 0, maxPlusUser = 0; int[] userSum; void recursive(int idx, int[][] users, int[] emoticons) { if (emoticons.length == ..
[프로그래머스 JAVA] 258707. n + 1 카드게임
·
코딩테스트/프로그래머스
문제 링크 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr접근 방법카드 x가 있을 때 필요한 짝은 항상 n + 1 - x로 정해집니다.따라서 모든 조합을 탐색하지 않고, HashSet을 이용해 필요한 카드가 있는지만 확인하면 됩니다.소스 코드import java.util.*;class Solution { int target; private boolean usePair(Set set1, Set set2) { int a = -1, b = -1; for (int card : set1) { b = target - card; if (set2.con..
[프로그래머스 JAVA] 17686. [3차] 파일명 정렬
·
코딩테스트/프로그래머스
문제 링크 코딩테스트 연습 - [3차] 파일명 정렬알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려school.programmers.co.kr접근 방법파일명을 HEAD, NUMBER로 나눈 뒤 정렬 기준에 맞게 정렬합니다.HEAD를 기준으로 사전순 정렬합니다. 이때 대소문자는 구분하지 않습니다.HEAD가 같다면 NUMBER를 숫자로 변환하여 오름차순 정렬합니다.HEAD와 NUMBER가 모두 같다면 입력 순서를 유지합니다.소스 코드import java.util.*;class Solution { class Node implements Comparable { ..
[프로그래머스 JAVA] 68936. 쿼드압축 후 개수 세기
·
코딩테스트/프로그래머스
문제 링크 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr접근 방법주어진 2차원 배열을 하나의 정사각형 영역으로 보고, 현재 영역이 모두 같은 값으로 이루어져 있는지 확인합니다.만약 현재 영역 안에 다른 값이 섞여 있다면 영역을 4개의 정사각형으로 나누고, 각 영역에 대해 같은 과정을 재귀적으로 반복합니다.소스 코드class Solution { int[] cnt = {0, 0}; int[][] board; void recursive(int y, int x, int size) { if (size == 1) { cnt[board[y][x]]++; r..
[프로그래머스 SQL] 301649. 대장균 크기에 따라 분류하기 2
·
코딩테스트/프로그래머스
문제 링크 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근 방법SIZE_OF_COLONY를 기준으로 내림차순 정렬한 뒤, 전체 데이터를 4등분해야 한다.각 그룹은 상위 25%씩 나뉘며, NTILE(4) 윈도우 함수를 사용하면 쉽게 해결할 수 있다. 소스 코드SELECT ID, CASE NTILE(4) OVER (ORDER BY SIZE_OF_COLONY DESC) WHEN 1 THEN 'CRITICAL' WHEN 2 THEN 'HIGH' WHEN 3 THEN 'MEDIUM' ELSE 'LOW' END AS COLONY_NAME FROM ECOL..
[프로그래머스 SQL] 131114. 경기도에 위치한 식품창고 목록 출력하기
·
코딩테스트/프로그래머스
문제 링크 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근 방법주소가 '경기도'로 시작하는 데이터만 조회해야 한다.IFNULL을 사용하여 NULL 값을 'N'으로 치환한다.소스 코드SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') AS FREEZER_YNFROM FOOD_WAREHOUSEWHERE ADDRESS LIKE '경기도%'ORDER BY WAREHOUSE_ID ASC;
[프로그래머스 JAVA] 42839. 소수 찾기
·
코딩테스트/프로그래머스
문제 링크  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 방법만들 수 있는 모든 수를 순열로 구해줍니다.같은 숫자인 경우를 처리해야 하므로 set을 사용합니다.최대 7자리 수이기 때문에 에라토스테네스의 체를 사용합니다.소스 코드import java.util.*;class Solution { char[] ch, bf = new char[7]; List arr = new LinkedList(); boolean[] visited; void permutation(int idx, int num) { if (idx == num)..
[프로그래머스 JAVA] 181832. 정수를 나선형으로 배치하기
·
코딩테스트/프로그래머스
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 방법나선형으로 배열을 채우기 위해 오른쪽, 아래, 왼쪽, 위 4방향으로 순차적으로 채워야 합니다.따라서 각 방향마다 출발지점을 만들고 채워줍니다.소스 코드class Solution { public int[][] solution(int n) { int[][] answer = new int[n][n], a = {{0, 0}, {0, n - 1}, {n - 1, n - 1}, {n - 1, 0}}; int[] d = {0, 1, 2, 3}; boolean fl..