본문 바로가기

Algorithm/Programers - Java

(160)
[프로그래머스(Java)] 콜라츠 수열 만들기 / Stream.iterate() Level. 0 문제 모든 자연수 x에 대해서 현재 값이 x이면 x가 짝수일 때는 2로 나누고, x가 홀수일 때는 3 * x + 1로 바꾸는 계산을 계속해서 반복하면 언젠가는 반드시 x가 1이 되는지 묻는 문제를 콜라츠 문제라고 부릅니다. 그리고 위 과정에서 거쳐간 모든 수를 기록한 수열을 콜라츠 수열이라고 부릅니다. 계산 결과 1,000 보다 작거나 같은 수에 대해서는 전부 언젠가 1에 도달한다는 것이 알려져 있습니다. 임의의 1,000 보다 작거나 같은 양의 정수 n이 주어질 때 초기값이 n인 콜라츠 수열을 return 하는 solution 함수를 완성해 주세요. * 제한사항 - 1 ≤ n ≤ 1,000 풀이 import java.util.List; import java.util.ArrayList; ..
[프로그래머스(Java)] 콜라츠 수열 만들기 / Stream.iterate() Level. 0 문제 모든 자연수 x에 대해서 현재 값이 x이면 x가 짝수일 때는 2로 나누고, x가 홀수일 때는 3 * x + 1로 바꾸는 계산을 계속해서 반복하면 언젠가는 반드시 x가 1이 되는지 묻는 문제를 콜라츠 문제라고 부릅니다. 그리고 위 과정에서 거쳐간 모든 수를 기록한 수열을 콜라츠 수열이라고 부릅니다. 계산 결과 1,000 보다 작거나 같은 수에 대해서는 전부 언젠가 1에 도달한다는 것이 알려져 있습니다. 임의의 1,000 보다 작거나 같은 양의 정수 n이 주어질 때 초기값이 n인 콜라츠 수열을 return 하는 solution 함수를 완성해 주세요. * 제한사항 - 1 ≤ n ≤ 1,000 풀이 import java.util.List; import java.util.ArrayList; ..
[프로그래머스(Java)] 꼬리 문자열 Level. 0 문제 문자열들이 담긴 리스트가 주어졌을 때, 모든 문자열들을 순서대로 합친 문자열을 꼬리 문자열이라고 합니다. 꼬리 문자열을 만들 때 특정 문자열을 포함한 문자열은 제외시키려고 합니다. 예를 들어 문자열 리스트 ["abc", "def", "ghi"]가 있고 문자열 "ef"를 포함한 문자열은 제외하고 꼬리 문자열을 만들면 "abcghi"가 됩니다. 문자열 리스트 str_list와 제외하려는 문자열 ex가 주어질 때, str_list에서 ex를 포함한 문자열을 제외하고 만든 꼬리 문자열을 return하도록 solution 함수를 완성해주세요. * 제한사항 - 2 ≤ str_list의 길이 ≤ 10 - 1 ≤ str_list의 원소의 길이 ≤ 10 - 1 ≤ ex의 길이 ≤ 5 풀이1. cla..
[프로그래머스(Java)] 특별한 이차원 배열 2 / allMatch(), anyMatch() Level. 0 문제 n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요. - 0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i] * 제한사항 1 ≤ arr의 길이 = arr의 원소의 길이 ≤ 1001 ≤ arr의 원소의 원소 ≤ 1,000모든 arr의 원소의 길이는 같습니다. 풀이 class Solution { public int solution(int[][] arr) { int n = arr.length; for(int i=0; i arr[i][j] == arr[j][i]))?1:0; } } allMatch() 모든 요소들이 조건을 만족하는지 조사한 후 B..
[프로그래머스(Java)] 문자열 정수의 합 / Arrays.stream , chars() Level. 0 문제 한 자리 정수로 이루어진 문자열 num_str이 주어질 때, 각 자릿수의 합을 return 하도록 solution 함수를 완성해 주세요. * 제한사항 - 3 ≤ num_str ≤ 100 풀이1. class Solution { public int solution(String num_str) { String[] str = num_str.split(""); int answer = 0; for(int i=0; ii-'0').sum(); } } chars() 문자열을 stream 으로 변환 https://school.programmers.co.kr/learn/courses/30/lessons/181849 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 ..
[프로그래머스(Java)] 문자 리스트를 문자열로 변환하기 / String.join() Level. 0 문제 문자들이 담겨있는 배열 arr가 주어집니다. arr의 원소들을 순서대로 이어 붙인 문자열을 return 하는 solution함수를 작성해 주세요. * 제한사항 - 1 ≤ arr의 길이 ≤ 200 arr의 원소는 전부 알파벳 소문자로 이루어진 길이가 1인 문자열입니다. 풀이1. stream import java.util.stream.*; import java.util.Arrays; class Solution { public String solution(String[] arr) { return Arrays.stream(arr).collect(Collectors.joining()); } } 풀이2. String.join() class Solution { public String solut..
[프로그래머스(Java)] ad 제거하기 Level. 0 문제 문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요. * 제한사항 - 1 ≤ strArr의 길이 ≤ 1,000 - 1 ≤ strArr의 원소의 길이 ≤ 20 - strArr의 원소는 알파벳 소문자로 이루어진 문자열입니다. 풀이1. import java.util.List; import java.util.ArrayList; import java.util.Arrays; class Solution { public String[] solution(String[] strArr) { String[] answer ; List list..
[프로그래머스(Java)] 0 떼기 / Integer.toString() , Integer.parseInt() Level. 0 문제 정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return 하도록 solution 함수를 완성해 주세요. * 제한사항 - 2 ≤ n_str ≤ 10 - n_str이 "0"으로만 이루어진 경우는 없습니다. 풀이 class Solution { public String solution(String n_str) { return Integer.toString(Integer.parseInt(n_str)); } } 0이 들어간 문자열을 숫자로 바꾼 뒤 다시 문자열로 바뀌면 맨 앞에 들어간 0을 없앨 수 있다. Java의 숫자를 문자열로, 문자열을 숫자로 바꾸는 방법 Int -> String Integer.toString : null..