본문 바로가기

Algorithm

(390)
[프로그래머스(Java)] 문자열 정렬하기 (2) / String.toCharArray() Level. 0 문제 영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. * 제한사항 - 0 < my_string 길이 < 100 풀이 import java.util.*; class Solution { public String solution(String my_string) { /* String answer = ""; my_string = my_string.toLowerCase(); String[] arr = my_string.split(""); Arrays.sort(arr); for(int i=0; i
[프로그래머스(Java)] 날짜 비교하기 / LocalDate , LocalTime , LocalDateTime Level. 0 문제 정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다. 만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요. * 제한사항 - date1의 길이 = date2의 길이 = 3 - 0 ≤ year ≤ 10,000 - 1 ≤ month ≤ 12 - day는 month에 따라 가능한 날짜로 주어집니다. 풀이 1. import java.time.LocalDate; class Solution { public int solution(int[] date1, int[] dat..
[프로그래머스] 쿼드압축 후 개수 세기 / 쿼드트리, 재귀 Level. 2 문제 0과 1로 이루어진 2^n x 2^n 크기의 2차원 정수 배열 arr이 있습니다. 당신은 이 arr을 쿼드 트리와 같은 방식으로 압축하고자 합니다. 구체적인 방식은 다음과 같습니다. 당신이 압축하고자 하는 특정 영역을 S라고 정의합니다. 만약 S 내부에 있는 모든 수가 같은 값이라면, S를 해당 수 하나로 압축시킵니다. 그렇지 않다면, S를 정확히 4개의 균일한 정사각형 영역(입출력 예를 참고해주시기 바랍니다.)으로 쪼갠 뒤, 각 정사각형 영역에 대해 같은 방식의 압축을 시도합니다. arr이 매개변수로 주어집니다. 위와 같은 방식으로 arr을 압축했을 때, 배열에 최종적으로 남는 0의 개수와 1의 개수를 배열에 담아서 return 하도록 solution 함수를 완성해주세요. * 제한..
[프로그래머스] 호텔 대실 / priority_queue Level. 2 문제 호텔을 운영 중인 코니는 최소한의 객실만을 사용하여 예약 손님들을 받으려고 합니다. 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있습니다. 예약 시각이 문자열 형태로 담긴 2차원 배열 book_time이 매개변수로 주어질 때, 코니에게 필요한 최소 객실의 수를 return 하는 solution 함수를 완성해주세요. * 제한사항 - 1 ≤ book_time의 길이 ≤ 1,000 - book_time[i]는 ["HH:MM", "HH:MM"]의 형태로 이루어진 배열입니다 [대실 시작 시각, 대실 종료 시각] 형태입니다. - 시각은 HH:MM 형태로 24시간 표기법을 따르며, "00:00" 부터 "23:59" 까지로 주어집니다. 예약 시각이 자정..
[프로그래머스(Java)] 합성수 찾기 / 에라토스테네스의 체 알고리즘 Level. 0 문제 약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return 하도록 solution 함수를 완성해 주세요. * 제한사항 - 1 ≤ n ≤ 100 풀이 - 에라토스테네스의 체 알고리즘 class Solution { public int solution(int n) { int answer = 0; int[] tmp = new int[n+1]; for(int i=2; i i % i2 == 0).count() > 2)) .count(); } } IntStream.range(int start, int end) 종료값을 포함하지 않는다. IntStream.rangeClosed(int start, int end) 종료값을 포함한다. ..
[프로그래머스(Java)] 이차원 배열 대각선 순회하기 Level.0 문제 2차원 정수 배열 board와 정수 k가 주어집니다. i + j
[프로그래머스(Java)] 중복된 문자 제거 / stream.distinct(), LinkedHashSet, String.Join(String, Object[]) Level. 0 문제 문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return 하도록 solution 함수를 완성해 주세요. * 제한사항 - 1 ≤ my_string ≤ 110 - my_string은 대문자, 소문자, 공백으로 구성되어 있습니다. - 대문자와 소문자를 구분합니다. - 공백(" ")도 하나의 문자로 구분합니다. 중복된 문자 중 가장 앞에 있는 문자를 남깁니다. 풀이 import java.util.Map; import java.util.HashMap; class Solution { public String solution(String my_string) { String answer = ""; String[] arr..
[프로그래머스(Java)] 문자열 반복해서 출력하기 / String.repeat() Level. 0 문제 문자열 str과 정수 n이 주어집니다.str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요. * 제한사항 - 1 ≤ str의 길이 ≤ 10 - 1 ≤ n ≤ 5 풀이 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int n = sc.nextInt(); System.out.print(str.repeat(n)); } } repeat() String 의 메서드로, String 문자열을 주어진 횟수만큼 반복한 값을 리턴한다. https://school.p..