본문 바로가기

알고리즘/PROGRAMMERS42

모음사전(Lv.2) 문제 설명 입출력 예시 요약 A, E, I, O, U 모음을 가지고 만들 수 있는 1~5 자리의 모든 조합(경우의 수) 구하기 풀이 접근 방식 1. 순서 파악 → A, AA, AAA, AAAA, AAAAA, AAAAE, AAAAI, AAAAO, AAAAU, AAAE, AAAEA, AAAEE, AAAEI, AAAEO, ... → dfs로 length가 5가 되면 return 2. dfs 메소드 구현 → 재귀 방식을 통한 모든 조합을 구하는 dfs 메소드 구현 코드리뷰 import java.util.*; public class Solution { String[] arr = {"A", "E", "I", "O", "U"}; List list = new ArrayList(); public void dfs(Stri.. 2024. 3. 25.
푸드 파이트 대회(Lv.1) 문제 설명 입출력 예시 요약 준비된 음식의 순서대로 먹는 개수만큼 숫자 출력 풀이 접근 방식 1. 각 음식의 개수를 참가자 수인 2로 나눈다. → 몫의 크기만큼 해당 음식의 숫자 저장 2. 두 번째 참가자 음식 정렬 → index = length()-1부터 0까지 감소해가며 문자열에 추가 코드리뷰 class Solution { public String solution(int[] food) { String setting = "";// 1번 참가자 음식 세팅 String answer = ""; for(int i = 1; i < food.length; i++) { int count = food[i]/2; for(int j = 0; j < count; j++) {// 2로 나눈 몫만큼 반복해서 해당 음식 숫자 .. 2024. 3. 24.
뉴스 클러스터링(Lv.2) 문제 설명 입출력 예시 요약 각 문자열에 대해 크기가 2인 문자열의 집합을 구한 후 서로 비교 풀이 접근 방식 1. 문자열로 집합 만들기 → makeSet() 메소드를 통해 집합 리스트 생성 → Character.isAlphabetic()으로 알파벳만 포함 2. 교집합 구하기 → .equalsIgnoreCase()를 통해 대소문자 구분 없이 비교 (완전 탐색) 3. 합집합 구하기 → 두 개의 집합 리스트를 더한 union에서 교집합 원소들 제거 → stream().anyMatch()를 통해 비교 후 제거 코드리뷰 import java.util.*; class Solution { List list1 = new ArrayList(); List list2 = new ArrayList(); List inter .. 2024. 3. 24.
상품 별 오프라인 매출 구하기(DB) 문제 설명 입출력 예시 요약 각 상품 별 총 판매금액 구하기 풀이 접근 방식 1. 테이블 조인 → PRODUCT_ID 기준으로 테이블 조인 2. 상품 별 매출액 구하기 → GROUP BY를 통해 상품코드(PRODUCT_CODE)별로 묶어서 SUM() 구하기 쿼리문 리뷰 -- 코드를 입력하세요 SELECT P.PRODUCT_CODE, SUM(P.PRICE * O.SALES_AMOUNT)-- 그룹화 함수 중 SUM()으로 가격 * 판매수량의 총 합을 구함 FROM PRODUCT P, OFFLINE_SALE O-- 테이블 JOIN을 위한 별칭 부여 WHERE P.PRODUCT_ID = O.PRODUCT_ID-- PRODUCT_ID 기준으로 JOIN GROUP BY P.PRODUCT_CODE-- 상품별로 묶기 .. 2024. 3. 22.
3월에 태어난 여성 회원 목록 출력하기(DB) 문제 설명 입출력 예시 요약 생일이 3월인 여성 회원의 1) 아이디 2) 이름 3) 성별 4) 생년월일 출력 풀이 접근 방식 1. 생년월일 형식 바꾸기 → TO_CHAR(DATE_OF_BIRTH, 'YYYY-MM-DD') : '년-월-일' 형태로 변경 2. 3월에 태어난 회원 구하기 → SUBSTR(DATE_OF_BIRTH, 6, 2) : YYYY-MON-DD에서 MON 가져와서 비교 * SUBSTR()의 경우 포맷 변경이 없었기 때문에 달에 해당하는 부분이 VARCHAR(JAN, FEB, MAR 등) 형태 3. 나머지 조건 맞추기 → TLNO IS NOT NULL, GENDER = 'W' 쿼리문리뷰 -- 코드를 입력하세요 SELECT MEMBER_ID, MEMBER_NAME, GENDER, TO_CHA.. 2024. 3. 22.
숫자 문자열과 영단어(Lv.1) 문제 설명 입출력 예시 요약 문자를 숫자로 바꾸기 풀이 접근 방식 1. 문자를 숫자로 바꾸기 → replaceAll() 메소드를 통해 변환 코드리뷰 import java.util.*; class Solution { public int solution(String s) { // 숫자를 문자형태로 담은 배열 만들기 String[] arr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"}; for(int i = 0; i < arr.length; i++) { s = s.replaceAll(arr[i], String.valueOf(i));// repalceAll()을 통해 숫자로 변환 } int answ.. 2024. 3. 22.