📌Back-End/프로그래머스
Java 프로그래머스 코딩 기초 트레이닝 Day 19 문자열, 리스트(배열)
구 일
2024. 6. 15. 22:38
728x90
반응형
세 개의 구분자
import java.util.LinkedList;
/**
* 코딩 기초 트레이닝 Day 19
* 세 개의 구분자
*/
public class Main1 {
public static void main(String[] args) {
String[] result = solution("baconlettucetomato");
for (String s : result) {
System.out.print(s + " ");
}
System.out.println();
result = solution("abcd");
for (String s : result) {
System.out.print(s + " ");
}
System.out.println();
result = solution("cabab");
for (String s : result) {
System.out.print(s + " ");
}
System.out.println();
}
public static String[] solution(String myStr) {
LinkedList<String> list = new LinkedList<>();
String[] result = myStr.split("[abc]");
for (int i = 0; i < result.length; i++) {
if (!result[i].isBlank()) {
list.add(result[i]);
}
}
if (result.length == 0) {
return new String[]{"EMPTY"};
} else {
return list.stream().toArray(String[]::new);
}
}
}
배열의 원소만큼 추가하기
import java.util.LinkedList;
/**
* 코딩 기초 트레이닝 Day 19
* 배열의 원소만큼 추가하기
*/
public class Main2 {
public static void main(String[] args) {
int[] result = solution(new int[]{5, 1, 4});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
result = solution(new int[]{6, 6});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
result = solution(new int[]{1});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
}
public static int[] solution(int[] arr) {
LinkedList<Integer> list = new LinkedList<>();
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i]; j++) {
list.add(arr[i]);
}
}
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
빈 배열에 추가, 삭제하기
import java.util.LinkedList;
/**
* 코딩 기초 트레이닝 Day 19
* 빈 배열에 추가, 삭제하기
*/
public class Main3 {
public static void main(String[] args) {
int[] result = solution(new int[]{3, 2, 4, 1, 3}, new boolean[]{true, false, true, false, false});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
}
public static int[] solution(int[] arr, boolean[] flag) {
LinkedList<Integer> list = new LinkedList<>();
for (int i = 0; i < flag.length; i++) {
if (flag[i]) {
for (int j = 0; j < arr[i] * 2; j++) {
list.add(arr[i]);
}
} else {
for (int j = 0; j < arr[i]; j++) {
list.removeLast();
}
}
}
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
배열 만들기 6
import java.util.Stack;
/**
* 코딩 기초 트레이닝 Day 19
* 배열 만들기 6
*/
public class Main4 {
public static void main(String[] args) {
int[] result = solution(new int[]{0, 1, 1, 1, 0});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
result = solution(new int[]{0, 1, 0, 1, 0});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
result = solution(new int[]{0, 1, 1, 0});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
}
public static int[] solution(int[] arr) {
Stack<Integer> stk = new Stack<>();
for (int i = 0; i < arr.length; i++) {
if (stk.isEmpty() || stk.peek() != arr[i]) {
stk.push(arr[i]);
} else if (stk.peek() == arr[i]) {
stk.pop();
}
}
if (stk.isEmpty()) {
return new int[]{-1};
}
return stk.stream().mapToInt(Integer::intValue).toArray();
}
}
무작위로 K개의 수 뽑기
import java.util.LinkedList;
/**
* 코딩 기초 트레이닝 Day 19
* 무작위로 K개의 수 뽑기
*/
public class Main5 {
public static void main(String[] args) {
int[] result = solution(new int[]{0, 1, 1, 2, 2, 3}, 3);
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
result = solution(new int[]{0, 1, 1, 1, 1}, 4);
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
}
public static int[] solution(int[] arr, int k) {
LinkedList<Integer> list = new LinkedList<>();
while (list.size() < k) {
for (int i = 0; i < arr.length; i++) {
if (!list.contains(arr[i])) {
list.add(arr[i]);
}
if (list.size() == k) {
break;
}
}
if (list.size() < k) {
list.add(-1);
}
}
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
728x90
반응형