Algorithm 124

[프로그래머스] 카펫 - Java

문제 설명 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 접근 방법 해당 문제에서 요구하는 것은 갈색 격자의 수와 노란색 격자의 수가 주어졌을 때 이를 통해 카페의 가로, 세로 크기를 구하는 것입니다. 이때 문제 설명과 입출력 예시에 따르면 따르면 카펫 중앙에는 항상 노란색으로 칠해져 있고, 그 테두리에는 갈색으로 칠해져 있다는 사실을 확인할 수 있습니다.(문제에서 명확하게 설명되있다고 생각하지는 않지만) 이러한 조건을 토대로 답을 구하기 위해 다음과 같이 접근해보았습니다. 우선 가로 길이가 세로 길이와..

[프로그래머스] 더 맵게 - Java

문제 설명 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 접근 방법 해당 문제는 우선수위 큐 PriorityQueue 자료구조를 이용해서 해결할 수 있었습니다. 우선 처음 파라미터로 받은 int형 배열 scoville의 요소들을 PriorityQueue에 add합니다. 이때 PriorityQueue의 특성으로 add된 정수형 요소들은 오름차순으로 정렬되게 됩니다. (PriorityQueue 자료구조를 생성할 때 Collections.reverseOrder()를 인자로 주면 내림차순으로 정렬하도록..

[백준 - 1931] 회의실 배정 - Java

문제 설명 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 접근 방법 문제에서 요구하고있는 회의실을 사용할 수 있는 회의의 최대 개수를 구하기 위해서는 우선 가장 일찍 시작하는 회의 시간에서 가장 늦게 시작하는 회의 시간 까지 겹치지 않으면서 사이사이에 가능한한 회의들이 다닥다닥 붙어있어야 합니다. 이러한 환경(?)을 만들기 위해 우선 입력받은 회의실 정보를 '끝나는 시간'을 기준으로 오름차순 정렬하고 만일 같다면 '시작 시간'을 기준으로 오름차순 정렬합니다. public static void main(String[] args) throws IOException { BufferedReader br = new BufferedR..

Algorithm/BOJ 2022.05.10

[프로그래머스] 기능개발 - Java

문제 설명 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 접근 방법 우선 주어진 int형 배열 progresses에 대해 각각의 기능별로 배포하는데 까지 걸리는 시간을 구합니다. int countOfProgresses = progresses.length; int[] days = new int[countOfProgresses]; for (int i = 0; i < countOfProgresses; i++) { days[i] = (int) Math.ceil( ((double) (100 - progress..

[프로그래머스] 튜플 - Java

문제 설명 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 접근 방법 우선 입력받은 문자열 s 중 '{'와 '}'를 모두 제거하여 숫자와 쉼표(,)만 남게 합니다. 이후 쉼표(,)를 기준으로 문자열을 분리(split)하여 문자열(숫자 문자열) 배열을 만듭니다. s = s.replace("{", ""); s = s.replace("}", ""); String[] numbers = s.split(","); 각각의 숫자 문자열을 HashMap에 key 값으로 저장..