https://school.programmers.co.kr/learn/challenges/training?order=acceptance_desc&languages=java
Day 8 - 조건문, 문자열
- 간단한 논리 연산
class Solution {
public boolean solution(boolean x1, boolean x2, boolean x3, boolean x4) {
return (x1||x2) && (x3||x4) ;
}
}
import java.util.*;
class Solution {
public int solution(int a, int b, int c, int d) {
if(a==b && b==c && c==d) return 1111*a;
if(a==b && b==c) return (int) Math.pow(10*a+d,2);
if(a==c && c==d) return (int) Math.pow(10*a+b,2);
if(a==b && b==d) return (int) Math.pow(10*a+c,2);
if(b==d && b==c) return (int) Math.pow(10*b+a,2);
if(a==b && c==d) return (a+c)*Math.abs(a-c);
if(a==c && b==d) return (b+c)*Math.abs(b-c);
if(b==c && a==d) return (a+c)*Math.abs(a-c);
if(a==b) return c*d;
if(a==c) return b*d;
if(a==d) return b*c;
if(b==c) return a*d;
if(b==d) return a*c;
if(c==d) return a*b;
return Math.min(Math.min(a,b),Math.min(c,d));
}
}
import java.util.Arrays;
class Solution {
public int solution(int a, int b, int c, int d) {
int[] dice = { a, b, c, d };
Arrays.sort(dice);
int ans = 0;
if (dice[0] == dice[3]) {
ans = 1111 * dice[3];
} else if (dice[0] == dice[2] || dice[1] == dice[3]) {
ans = (int) Math.pow(dice[1] * 10 + (dice[0] + dice[3] - dice[1]), 2);
} else if (dice[0] == dice[1] && dice[2] == dice[3]) {
ans = (dice[0] + dice[3]) * (dice[3] - dice[0]);
} else if (dice[0] == dice[1]) {
ans = dice[2] * dice[3];
} else if (dice[1] == dice[2]) {
ans = dice[0] * dice[3];
} else if (dice[2] == dice[3]) {
ans = dice[0] * dice[1];
} else {
ans = dice[0];
}
return ans;
}
}
- 글자 이어 붙여 문자열 만들기
class Solution {
public String solution(String my_string, int[] index_list) {
String answer = "";
char[] c = my_string.toCharArray();
for(int i : index_list){
answer+=String.valueOf(c[i]);
}
return answer;
}
}
class Solution {
public String solution(String my_string, int[] index_list) {
StringBuilder sb = new StringBuilder();
for (int idx : index_list)
sb.append(my_string.charAt(idx));
return sb.toString();
}
}
- 9로 나눈 나머지
import java.util.*;
import java.math.BigInteger;
class Solution {
public int solution(String number) {
return (new BigInteger(number).remainder(BigInteger.valueOf(9))).intValue();
}
}
class Solution {
public int solution(String number) {
return number.chars().map(c -> (c - '0') % 9).sum() % 9;
}
}
- 문자열 여러 번 뒤집기
class Solution {
public String solution(String my_string, int[][] queries) {
String answer = "";
for(int[] q : queries){
answer=my_string.substring(0,q[0]);
for(int i=q[1];i>=q[0];i--){
answer+=String.valueOf(my_string.charAt(i));
}
answer+=my_string.length()==q[1]?"":my_string.substring(q[1]+1,my_string.length());
my_string = answer;
}
return my_string;
}
}
Day 9 - 문자열
- 배열 만들기 5
import java.util.*;
class Solution {
public int[] solution(String[] intStrs, int k, int s, int l) {
List<Integer> answer = new ArrayList<>();
for(String str : intStrs){
int t = Integer.parseInt(str.substring(s,s+l));
if(k<t) answer.add(t);
}
return answer.stream().mapToInt(Integer::intValue).toArray();
}
}
- 부분 문자열 이어 붙여 문자열 만들기
class Solution {
public String solution(String[] my_strings, int[][] parts) {
String answer = "";
for(int i=0;i<parts.length;i++){
answer+=my_strings[i].substring(parts[i][0],parts[i][1]+1);
}
return answer;
}
}
import java.util.stream.*;
class Solution {
public String solution(String[] myStrings, int[][] parts) {
return IntStream.range(0, myStrings.length).mapToObj(i -> myStrings[i].substring(parts[i][0], parts[i][1] + 1)).collect(Collectors.joining());
}
}
- 문자열의 뒤의 n글자
class Solution {
public String solution(String my_string, int n) {
return my_string.substring(my_string.length()-n,my_string.length());
}
}
- 접미사 배열
import java.util.*;
class Solution {
public String[] solution(String my_string) {
List<String> answer = new ArrayList<String>();
for(int i=0;i<=my_string.length()-1;i++){
answer.add(my_string.substring(i));
}
Collections.sort(answer);
return answer.toArray(new String[0]);
}
}
import java.util.*;
import java.util.stream.IntStream;
class Solution {
public String[] solution(String myString) {
return IntStream.range(0, myString.length()).mapToObj(myString::substring).sorted().toArray(String[]::new);
}
}
- 접미사인지 확인하기
import java.util.*;
class Solution {
public int solution(String my_string, String is_suffix) {
List<String> list = new ArrayList<>();
for(int i=0;i<my_string.length();i++){
list.add(my_string.substring(i));
}
return list.contains(is_suffix)?1:0;
}
}
class Solution {
public int solution(String myString, String isSuffix) {
return myString.endsWith(isSuffix) ? 1 : 0;
}
}
'코딩테스트 > JAVA' 카테고리의 다른 글
[JAVA] 프로그래머스 - 기초문제 Day11 (0) | 2023.11.09 |
---|---|
[JAVA] 프로그래머스 - 기초문제 Day10 (0) | 2023.11.07 |
[JAVA] 프로그래머스 - 기초문제 Day7 (0) | 2023.11.03 |
[JAVA] 프로그래머스 - 기초문제 Day4 ~ Day6 (2) | 2023.11.03 |
[JAVA] 프로그래머스 - 기초문제 Day1 ~ Day3 (0) | 2023.10.30 |