
보통 알고리즘 문제를 구현하는데 for문을 사용할 경우, for문이 더 시간이 적게 걸려 for문을 사용하지만, Spring을 사용하는 프로젝트에서는 Stream을 사용하는 경우가 더 많기 때문에, 해당 방식도 같이 구현해 보았다.
class Solution {
public String solution(String s) {
String answer = "";
s = s.toLowerCase();
String[] split = s.split("");
int idx = 0;
for(int i = 0 ; i < split.length ; i++){
if(split[i].equals(" ")){
idx = 0;
answer += split[i];
}else{
if(idx % 2 == 0){
answer += split[i].toUpperCase();
idx++;
}else{
answer += split[i];
idx++;
}
}
}
System.out.println(answer);
return answer;
}
}
import java.util.*;
import java.util.stream.*;
class Solution_for {
public int solution(int[] number) {
int answer = 0;
for(int i = 0 ; i < number.length - 2 ; i++){
for(int j = i + 1 ; j < number.length - 1 ; j++){
for(int k = j + 1 ; k < number.length ; k++){
int sum = number[i] + number[j] + number[k];
if(sum == 0){
answer++;
}
}
}
}
return answer;
}
}
class Solution_stream {
public int solution(int[] number) {
return (int)IntStream.range(0, number.length - 2)
.flatMap(i -> IntStream.range(i + 1, number.length - 1)
.flatMap(j -> IntStream.range(j + 1, number.length)
.filter(k -> number[i] + number[j] + number[k] == 0)
)
)
.count();
}
}
class Solution {
public int solution(String t, String p) {
int answer = 0;
for(int i = 0 ; i <= t.length() - p.length() ; i++){
long cur = Long.parseLong(t.substring(i,i + p.length()));
if(cur <= Long.parseLong(p)){
answer++;
}
}
return answer;
}
}
class Solution {
public int solution(int[][] sizes) {
for(int i = 0 ; i < sizes.length ; i++){
if(sizes[i][0] < sizes[i][1]){
int temp = sizes[i][0];
sizes[i][0] = sizes[i][1];
sizes[i][1] = temp;
}
}
int width = 0;
int height = 0;
for(int i = 0 ; i < sizes.length ; i++){
width = Math.max(width, sizes[i][0]);
height = Math.max(height, sizes[i][1]);
}
return width * height;
}
}
class Solution {
public String solution(String s, int n) {
String answer = "";
for(int i = 0 ; i < s.length() ; i++){
if(s.charAt(i) >= 'A' && s.charAt(i) <= 'Z'){
answer += (char)(((s.charAt(i) - 'A') + n) % 26 + 'A');
}else if(s.charAt(i) >= 'a' && s.charAt(i) <= 'z'){
answer += (char)(((s.charAt(i) - 'a') + n) % 26 + 'a');
}else{
answer += s.charAt(i);
}
}
return answer;
}
}