본문 바로가기

코테18

체스판 다시 칠하기 문제 설명 입출력 예시 요약 흰색 또는 검은색을 기준으로 8x8 체스판을 만들 때 최소로 칠해야 하는 타일의 개수 구하기 풀이 접근 방식 1. 검은색 체스판을 만들기 위해 칠해야 하는 타일의 개수 → paintB() 메소드를 통해 구한다. 2. 흰색 체스판을 만들기 위해 칠해야 하는 타일의 개수 → paintW() 메소드를 통해 구한다. 3. 둘 중 최솟값 return 코드리뷰 import java.util.*; class Main { static List list = new ArrayList(); static String[] choices = {"BWBWBWBW", "WBWBWBWB"};// 검은색 line과 하얀색 line을 담은 배열 public static int paintB(int row, in.. 2024. 3. 22.
의상(Lv.2) 문제 설명 입출력 예시 요약 각 의상의 카테고리마다 하나씩 다르게 착용하는 경우의 수 구하기 풀이 접근 방식 1. 각 카테고리에 해당하는 아이템의 개수 구하기 → 카테고리(key) : 개수(value) map 만들기(아무것도 착용하지 않는 경우의 수 추가) 2. 최소 하나의 의상은 착용해야 함 → 모든 카테고리에서 아무것도 고르지 않는 경우 제외 코드리뷰 import java.util.*; class Solution { public int solution(String[][] clothes) { HashMap map = new HashMap(); for(int i = 0; i < clothes.length; i++) { map.put(clothes[i][1], map.getOrDefault(clothes[.. 2024. 3. 22.
기능개발(Lv.2) 문제 설명 입출력 예시 요약 배포 순서는 정해져 있는 상태에서 기능 개발이 완료된 프로세스는 함께 배포 풀이 접근 방식 1. 기능개발까지 남은 일 수 계산 → 남은 일 수 : (100 - 진행현황) / 속도 2. 배포단계에 있는 프로세스의 남은 일수와 같거나 적은 프로세스는 함께 배포 → Queue 형식으로 데이터 조회 코드리뷰 import java.util.*; class Solution { public int[] solution(int[] progresses, int[] speeds) { List remains = new ArrayList(); List answerList = new ArrayList(); for(int i = 0; i < progresses.length; i++) { int rema.. 2024. 3. 22.
튜플(Lv.2) 문제 설명 입출력 예시 요약 해당 문자열을 통해 튜플 구하기 * 여기서 튜플은 정해진 순서가 있고 중복되는 숫자가 없음 풀이 접근 방식 1. 문자열에서 서로 크기가 다른 집합을 떼서 배열에 담는다. → {{20, 111}, {111}} : {20, 111}과 {111}로 split 2. 해당 집합을 요소로 갖는 배열을 문자열의 길이 순으로 정렬한다. → Arrays.sort()에 람다식을 통한 정렬 3. set에 하나씩 담는다. → 두 번째 요소부터는 "," 기준으로 split후 하나씩 담기 코드리뷰 import java.util.*; class Solution { public int[] solution(String s) { HashSet set = new LinkedHashSet(); List answ.. 2024. 3. 22.
피로도(Lv.2) 문제 설명 입출력 예시 요약 던전을 최대로 많이 돌 수 있는 경우의 수 구하기 풀이 접근 방식 1. 완전탐색을 위한 모든 경우의 수 구하기 → 던전의 개수가 3개인 경우: 012, 021, 102, 120, 201, 210 코드리뷰 import java.util.*; class Solution { HashSet set = new HashSet(); // 모든 경우의 수를 구하는 재귀함수 public void recursive(String comb, String remains, int maxLength) { if(!comb.isBlank() && comb.length() == maxLength) { set.add(comb); } for(int i = 0; i < remains.length(); i++) {.. 2024. 3. 22.
프로세스(Lv.2) 문제 설명 입출력 예시 요약 location에 해당하는 index의 prioties 요소가 몇 번째로 출력되는지 구하기 풀이 접근 방식 1. priority와 location을 갖는 객체 생성 → Priority class 객체 생성 2. Queue 형태로 객체 조회 → ArrayList로 큐 구현 코드리뷰 import java.util.*; class Priority {// priority와 location을 담을 객체 클래스 int priority; int location; public Priority(int priority, int location) { this.priority = priority; this.location = location; } } class Solution { public in.. 2024. 3. 22.