본문 바로가기

Algorithm

(390)
[프로그래머스(Java)] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 / lastIndexOf() Level. 0 문제 문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요. * 제한사항 - 5 ≤ myString ≤ 20 - 1 ≤ pat ≤ 5 pat은 반드시 myString의 부분 문자열로 주어집니다. - myString과 pat에 등장하는 알파벳은 대문자와 소문자를 구분합니다. 풀이 class Solution { public String solution(String myString, String pat) { String answer = ""; int index = 0, size = pat.length(); char last = pat.charAt(size-1); for..
[프로그래머스] 글자지우기 Level. 0 문제 문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 1 ≤ indices의 길이 < my_string의 길이 ≤ 100 - my_string은 영소문자로만 이루어져 있습니다 - 0 ≤ indices의 원소 < my_string의 길이 - indices의 원소는 모두 서로 다릅니다. 풀이 import java.util.List; import java.util.Arrays; import java.util.stream.Collectors; class Solution { public String solutio..
[프로그래머스(Java)] 중복된 숫자 개수 Level. 0 문제 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해 보세요. * 제한사항 - 1 ≤ array의 길이 ≤ 100 - 0 ≤ array의 원소 ≤ 1,000 - 0 ≤ n ≤ 1,000 풀이 1. import java.util.*; class Solution { public int solution(int[] array, int n) { int answer = 0; for(int num : array){ if(num == n) answer += 1; } return answer; } } 풀이 2. - Stream import java.util.*; class Solution { public..
[프로그래머스(Java)] 옹알이 (1) Level. 0 문제 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다. 문자열은 알파..
[프로그래머스] 롤케이크 자르기 / map.erase() Level. 2 문제 철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹으려 하는데, 그들은 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많습니다. 그래서 잘린 조각들의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것으로 생각합니다. 예를 들어, 롤케이크에 4가지 종류의 토핑이 올려져 있다고 합시다. 토핑들을 1, 2, 3, 4와 같이 번호로 표시했을 때, 케이크 위에 토핑들이 [1, 2, 1, 3, 1, 4, 1, 2] 순서로 올려져 있습니다. 만약 세 번째 토핑(1)과 네 번째 토핑(3) ..
[프로그래머스(Java)] 배열의 길이를 2의 거듭제곱으로 만들기 / Arrays.copyOf() Level. 0 문제 정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 1 ≤ arr의 길이 ≤ 1,000 - 1≤ arr의 원소 ≤ 1,000 풀이 import java.util.Arrays; class Solution { public int[] solution(int[] arr) { int size = 1; while(size < arr.length){ size *= 2; } return Arrays.copyOf(arr, size); } } https://school.programmers.co.kr/lea..
[프로그래머스(Java)] 진료순서 정하기 / Arrays.stream(), boxed(), collect(Collectors.toList()), indexOf() Level. 0 문제 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. * 제한사항 - 중복된 원소는 없습니다. - 1 ≤ emergency의 길이 ≤ 10 - 1 ≤ emergency의 원소 ≤ 100 풀이 import java.util.Arrays; class Solution { public int[] solution(int[] emergency) { int size = emergency.length; int[] answer = new int[size]; int[] rank = emergency.clone(); ..
[프로그래머스(Java)] 정수를 나선형으로 배치하기 Level. 0 문제 양의 정수 n이 매개변수로 주어집니다. n × n 배열에 1부터 n2 까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 1 ≤ n ≤ 30 풀이 class Solution { public int[][] solution(int n) { int[][] answer = new int[n][n]; String vec = "right"; int count = 1; int row = 0, col = 0; while(count