본문 바로가기

Algorithm

(390)
[프로그래머스(Java)] 문자 개수 세기 / groupingBy Level. 0 문제 알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수, my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 1 ≤ my_string의 길이 ≤ 1,000 풀이 class Solution { public int[] solution(String my_string) { int[] answer = new int[52]; for(int i=0; i> gourpingBy의 두 번째 인자..
[프로그래머스(Java)] 잘라서 배열로 저장하기 Level. 0 문제 문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요. * 제한사항 - 1 ≤ my_str의 길이 ≤ 100 - 1 ≤ n ≤ my_str의 길이 - my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다. 풀이 class Solution { public String[] solution(String my_str, int n) { String[] answer = {}; answer = my_str.length()%n==0?new String[my_str.length()/n] : new String[my_str.length()/n+1]; int index = 0; for(int i=..
[프로그래머스(Java)] qr code / Stream Level. 0 문제 두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 0 ≤ r String.valueOf(code.charAt(i))).collect..
[프로그래머스(Java)] 커피 심부름 Level. 0 문제 팀의 막내인 철수는 아메리카노와 카페 라테만 판매하는 카페에서 팀원들의 커피를 사려고 합니다. 아메리카노와 카페 라테의 가격은 차가운 것과 뜨거운 것 상관없이 각각 4500, 5000원입니다. 각 팀원에게 마실 메뉴를 적어달라고 하였고, 그 중에서 메뉴만 적은 팀원의 것은 차가운 것으로 통일하고 "아무거나"를 적은 팀원의 것은 차가운 아메리카노로 통일하기로 하였습니다. 각 직원이 적은 메뉴가 문자열 배열 order로 주어질 때, 카페에서 결제하게 될 금액을 return 하는 solution 함수를 작성해주세요. order의 원소는 아래의 것들만 들어오고, 각각의 의미는 다음과 같습니다. order의 원소 의미 "iceamericano", "americanoice" 차가운 아메리카노 ..
[프로그래머스(Java)] 조건에 맞게 수열 변환하기 2 / clone, equals Level. 0 문제 정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱하고 다시 1을 더합니다. 이러한 작업을 x번 반복한 결과인 배열을 arr(x)라고 표현했을 때, arr(x) = arr(x + 1)인 x가 항상 존재합니다. 이러한 x 중 가장 작은 값을 return 하는 solution 함수를 완성해 주세요. 단, 두 배열에 대한 "="는 두 배열의 크기가 서로 같으며, 같은 인덱스의 원소가 각각 서로 같음을 의미합니다. * 제한사항 - 1 ≤ arr의 길이 ≤ 1,000,000 - 1 ≤ arr의 원소의 값 ≤ 100 풀이 import java.util.*; class Solution { public int ..
[프로그래머스(Java)] 7의 개수 / Stream, mapToObj, Collectors.joining() Level. 0 문제 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. * 제한사항 - 1 ≤ array의 길이 ≤ 100 - 0 ≤ array의 원소 ≤ 100,000 풀이 import java.util.*; class Solution { public int solution(int[] array) { int answer = 0; String str = ""; for(int i=0; ic=='7').count(); return answer; } } Java의 기본 문자 어레이를 chars()를 통해 스트림으로 변환하고, filter()를 통해 원하는 자료만 필터링한 후 count()를..
[프로그래머스(Java)] 가장 가까운 같은 글자 / map.getOrDefault() Level. 1 문제 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. - b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. - 이는 -1로 표현합니다. a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. - 이는 -1로 표현합니다.n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. - 이는 -1로 표현합니다.a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다. - n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다. - a는 자신보다 ..
[프로그래머스] 배달 / 다익스트라 알고리즘 Level. 2 문제 N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서 K 시간 이하로 배달이 가능한 마을에서만 주문을 받으려고 합니다. 다음은 N = 5, K = 3인 경우의 예시입니다. 위 그림에서 1번 마을에 있는 음식점은 [1, 2, 4, 5] 번 마을까지는 3 이하의 시간에 배달할 수 있습니다. 그러나 3번 마을까지는 3..