본문 바로가기

Algorithm/Programers - Java

(160)
[프로그래머스(Java)] 길이에 따른 연산 / reduce() Level.0 문제 정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요. 제한사항 2 ≤ num_list의 길이 ≤ 201 ≤ num_list의 원소 ≤ 9num_list의 원소를 모두 곱했을 때 2,147,483,647를 넘는 입력은 주어지지 않습니다. 풀이.1 import java.util.stream.*; class Solution { public int solution(int[] num_list) { return num_list.length>10?IntStream.of(num_list).sum():IntStream.of(num_list).reduce(1..
[프로그래머스(Java)] 배열의 길이에 따라 다른 연산하기 Level.0 문제 정수 배열 arr과 정수 n이 매개변수로 주어집니다. arr의 길이가 홀수라면 arr의 모든 짝수 인덱스 위치에 n을 더한 배열을, arr의 길이가 짝수라면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 1 ≤ arr의 길이 ≤ 1,000 - 1 ≤ arr의 원소 ≤ 1,000 - 1 ≤ n ≤ 1,000 풀이.1 import java.util.stream.*; class Solution { public int[] solution(int[] arr, int n) { return IntStream.range(0, arr.length).map(i -> arr.length%2==0?((i+1)%2==0?arr[i..
[프로그래머스(Java)] 숨어있는 숫자의 덧셈 (1) / Character.isDigit() Level. 0 문제 문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요. * 제한사항 - 1 ≤ my_string의 길이 ≤ 1,000 - my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다. 풀이.1 import java.util.stream.*; import java.util.Arrays; class Solution { public int solution(String my_string) { String str = my_string.replaceAll("[a-zA-z]",""); return Arrays.stream(str.split("")).mapToInt(value -> Inte..
[프로그래머스(Java)] 문자열 곱하기 / String.repeat(), Collections.nCopies() Level.0 문제 문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 1 ≤ my_string의 길이 ≤ 100 - my_string은 영소문자로만 이루어져 있습니다. - 1 ≤ k ≤ 100 풀이. 1 - repeat() import java.util.*; class Solution { public String solution(String my_string, int k) { return my_string.repeat(k); } } String.repeat(n) 문자열을 n번 반복한 새 문자열을 반환한다. 풀이. 2 - Collections.nCopies() import java.util.s..
[프로그래머스(Java)] 더 크게 합치기 Level. 0 문제 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다. - 12 ⊕ 3 = 123 - 3 ⊕ 12 = 312 양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요. 단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다. * 제한사항 - 1 ≤ a, b < 10,000 풀이.1 class Solution { public int solution(int a, int b) { int num1 = Integer.parseInt(Integer.toString(a) + Integer.toString(b)); int num2 = Integer.parseInt..
[프로그래머스(Java)] 정수 찾기 / anyMatch() Level.0 문제 정수 리스트 num_list와 찾으려는 정수 n이 주어질 때, num_list안에 n이 있으면 1을 없으면 0을 return하도록 solution 함수를 완성해주세요. * 제한사항 - 3 ≤ num_list의 길이 ≤ 100 - 1 ≤ num_list의 원소 ≤ 100 - 1 ≤ n ≤ 100 풀이.1 - Arrays.asList() import java.util.Arrays; class Solution { public int solution(int[] num_list, int n) { return Arrays.asList(num_list).contains(num)?1:0; } } 풀이.2 - Stream import java.util.stream.*; class Solution { ..
[프로그래머스(Java)] n 번째 원소부터 / Arrays.copyOfRange() Level. 0 문제 정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요. * 제한사항 - 2 ≤ num_list의 길이 ≤ 30 - 1 ≤ num_list의 원소 ≤ 9 - 1 ≤ n ≤ num_list의 길이 풀이.1 - Stream import java.util.stream.*; class Solution { public int[] solution(int[] num_list, int n) { return IntStream.range(n-1, num_list.length).map(i -> num_list[i]).toArray(); } } 풀이.2 - Arrays.copyOfRange(..
[프로그래머스(Java)] 수 조작하기 1 Level. 0 문제 정수 n과 문자열 control이 주어집니다. control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다. "w" : n이 1 커집니다. "s" : n이 1 작아집니다. "d" : n이 10 커집니다. "a" : n이 10 작아집니다. 위 규칙에 따라 n을 바꿨을 때 가장 마지막에 나오는 n의 값을 return 하는 solution 함수를 완성해 주세요. * 제한사항 - -100,000 ≤ n ≤ 100,000 - 1 ≤ control의 길이 ≤ 100,000 - control은 알파벳 소문자 "w", "a", "s", "d"로 이루어진 문자열입니다. 풀이1. class Solution { ..