728x90
반응형
코드 처리하기
package Day_5;
/**
* 코딩 기초 트레이닝 Day 5
* 코드 처리하기
*/
public class Main1 {
public static void main(String[] args) {
System.out.println(solution("abc1abc1abc"));
}
/**
* 솔루션
* @param code 코드
* @return 문자열
*/
public static String solution(String code) {
int mode = 0;
StringBuffer sb = new StringBuffer();
String[] codeSplit = code.split("");
for (int i = 0; i < codeSplit.length; i++) {
if (mode == 0) {
if (i % 2 == 0 && !codeSplit[i].equals("1")) {
sb.append(codeSplit[i]);
} else if (codeSplit[i].equals("1")) {
mode = 1;
}
} else if (mode == 1) {
if (i % 2 != 0 && !codeSplit[i].equals("1")) {
sb.append(codeSplit[i]);
} else if (codeSplit[i].equals("1")) {
mode = 0;
}
}
}
return !sb.toString().isEmpty() ? sb.toString() : sb.append("EMPTY").toString();
}
}
등차수열의 특정한 항만 더하기
package Day_5;
/**
* 코딩 기초 트레이닝 Day 5
* 등차수열의 특정한 항만 더하기
*/
public class Main2 {
public static void main(String[] args) {
boolean[] included = {true, false, false, true, true};
System.out.println(solution(3, 4, included));
boolean[] included2 = {false, false, false, true, false, false, false};
System.out.println(solution(7, 1, included2));
}
/**
* 솔루션
* @param a 정수
* @param d 정수
* @param included 참거짓 배열
* @return 정수
*/
public static int solution(int a, int d, boolean[] included) {
int answer = 0;
for (int i = 0; i < included.length; i++) {
if (i > 0) {
a += d;
}
if (included[i]) {
answer += a;
}
}
return answer;
}
}
주사위 게임 2
package Day_5;
/**
* 코딩 기초 트레이닝 Day 5
* 주사위 게임 2
*/
public class Main3 {
public static void main(String[] args) {
System.out.println(solution(2, 6, 1));
System.out.println(solution(5, 3, 3));
System.out.println(solution(4, 4, 4));
}
/**
* 솔루션
* @param a 정수
* @param b 정수
* @param c 정수
* @return 정수
*/
public static int solution(int a, int b, int c) {
int answer = 0;
int square = (int) (Math.pow(a, 2) + Math.pow(b, 2) + Math.pow(c, 2));
int cube = (int) (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3));
if (a != b && a != c && b != c) {
answer = a + b + c;
} else if (a == b && a != c || a == c && a != b || b == c && a != b) {
answer = (a + b + c) * square;
} else if (a == b && a == c) {
answer = (a + b + c) * square * cube;
}
return answer;
}
}
원소들의 곱과 합
package Day_5;
import java.util.Arrays;
/**
* 코딩 기초 트레이닝 Day 5
* 원소들의 곱과 합
*/
public class Main4 {
public static void main(String[] args) {
System.out.println(solution(new int[]{3, 4, 5, 2, 1}));
System.out.println(solution(new int[]{5, 7, 8, 3}));
}
/**
* 솔루션
* @param num_list 정수 배열
* @return 정수
*/
public static int solution(int[] num_list) {
int mul = Arrays.stream(num_list).reduce((a, b) -> a * b).getAsInt(); // 모든 원소의 곱
int square = (int) Math.pow(Arrays.stream(num_list).sum(), 2); // 합의 제곱
return mul < square ? 1 : 0;
}
}
이어 붙인 수
package Day_5;
import java.util.Arrays;
/**
* 코딩 기초 트레이닝 Day 5
* 이어 붙인 수
*/
public class Main5 {
public static void main(String[] args) {
System.out.println(solution(new int[]{3, 4, 5, 2, 1}));
System.out.println(solution(new int[]{5, 7, 8, 3}));
}
/**
* 솔루션
* @param num_list 정수 배열
* @return 정수
*/
public static int solution(int[] num_list) {
int evenSum = Arrays
.stream(num_list)
.filter(x -> x % 2 == 0) // 짝수
.reduce((x, y) -> (x * 10) + y) // 이어 붙이기 위해 앞에 수에 * 10 하고 뒤에 수 더하기
.getAsInt(); // 정수 리턴
int oddSum = Arrays
.stream(num_list)
.filter(x -> x % 2 != 0) // 홀수
.reduce((x, y) -> (x * 10) + y) // 이어 붙이기 위해 앞에 수에 * 10 하고 뒤에 수 더하기
.getAsInt(); // 정수 리턴
return evenSum + oddSum;
}
}
728x90
반응형
'📌Back-End > 프로그래머스' 카테고리의 다른 글
Java 프로그래머스 코딩 기초 트레이닝 Day 7 반복문 (0) | 2024.05.02 |
---|---|
Java 프로그래머스 코딩 기초 트레이닝 Day 6 조건문, 반복문 (0) | 2024.05.01 |
Java 프로그래머스 코딩 기초 트레이닝 Day 4 연산, 조건문 (0) | 2024.04.29 |
Java 프로그래머스 코딩 기초 트레이닝 Day 3 연산 (1) | 2024.04.28 |
Java 프로그래머스 코딩 기초 트레이닝 Day 2 출력, 연산 (0) | 2024.04.27 |