본문 바로가기

Algorithm

(402)
[프로그래머스] 숫자 변환하기 / 비둘기집의 원리 Level. 2 문제 자연수 x를 y로 변환하려고 합니다. 사용할 수 있는 연산은 다음과 같습니다. x에 n을 더합니다x에 2를 곱합니다.x에 3을 곱합니다. 자연수 x, y, n이 매개변수로 주어질 때, x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요. 이때 x를 y로 만들 수 없다면 -1을 return 해주세요. * 제한사항 - 1 ≤ x ≤ y ≤ 1,000,000 - 1 ≤ n < y 풀이 #include #include using namespace std; int MIN = 1000001; int countArr[1000001] = { 0, }; // 메모이제이션 int convert(int count, int x, int y, int n)..
[프로그래머스] 문자열 뒤집기 / StringBuilder.reverse() Level. 0 문제 문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - my_string은 숫자와 알파벳으로만 이루어져 있습니다. - 1 ≤ my_string의 길이 ≤ 1,000 - 0 ≤ s ≤ e < my_string의 길이 풀이 class Solution { public String solution(String my_string, int s, int e) { String answer =""; String[] arr = my_string.split(""); // char[] arr = my_string.toCharArray(); while(s
[프로그래머스(Java)] 숨어있는 숫자의 덧셈 (2) / split() 정규식 Level. 0 문제 문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어 있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해 주세요. * 제한사항 - 1 ≤ my_string의 길이 ≤ 1,000 - 1 ≤ my_string 안의 자연수 ≤ 1,000 - 연속된 수는 하나의 숫자로 간주합니다. - 000123과 같이 0이 선행하는 경우는 없습니다. - 문자열에 자연수가 없는 경우 0을 return 해주세요. 풀이 class Solution { public int solution(String my_string) { int answer = 0; String num = ""; my_string += 'A'; f..
[프로그래머스(Java)] 가까운 수 / Arrays.sort() Level. 0 문제 정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해 주세요. * 제한사항 - 1 ≤ array의 길이 ≤ 100 - 1 ≤ array의 원소 ≤ 100 - 1 ≤ n ≤ 100 - 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다. 풀이 import java.util.Arrays; class Solution { public int solution(int[] array, int n) { int answer = 0; int[][] arr = new int[array.length][2]; for(int i=0; i { if(o1[1] == o2[1]) return..
[프로그래머스(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"가 한 번씩만 등장합니다. 문자열은 알파..