[JadenCase 문자열 만들기]
- 입력된 문자를 모두 소문자로 변경한다
- 첫 번째 글자를 대문자로 바꾼 뒤, 다음 문자부터 순서대로 로직을 진행한다
- 현재 글자를 기준으로
- 이전의 문자가 공백이라면 -> 현재 글자를 대문자로 변경한다
- 이전의 문자가 글자라면 -> 현재 글자를 그대로 받는다
// JadenCase 문자열 만들기
public class Problem_JadenCase {
public static void main(String[] args) {
String s = "3people unFollowed me ";
String answer = solution(s);
System.out.println(answer);
}
public static String solution(String s) {
StringBuilder sb = new StringBuilder();
s = s.toLowerCase();
sb.append(s.substring(0,1).toUpperCase());
for(int i=1; i<s.length(); ++i) {
//이전의 문자가 공백이라면
if(s.substring(i-1, i).equals(" ")) {
sb.append(s.substring(i, i+1).toUpperCase());
}
else sb.append(s.substring(i, i+1));
}
return sb.toString();
}
}
[N개의 최소공배수]
- 두 수에 대한 최소 공배수를 구하고(lcm), 구해진 lcm과 그 다음 숫자의 최소 공배수를 구한다
- 마지막 숫자까지 로직을 반복한다
- a * b = 최소 공배수(lcm) * 최대 공약수(gcd)
// N개의 최소공배수
public class Problem_LCM {
public static void main(String[] args) {
int[] arr = {2,6,8,14};
int answer = solution(arr);
System.out.println(answer);
}
public static int solution(int[] arr) {
int lcm = arr[0];
for(int i=1; i<arr.length; ++i) {
lcm = getLcm(lcm, arr[i]);
}
return lcm;
}
private static int getLcm(int a, int b) {
return (a * b) / getGcd(a, b);
}
private static int getGcd(int a, int b) {
if(a % b == 0) {
return b;
}
return getGcd(b, a%b);
}
}
'Algorithm > Problem_프로그래머스' 카테고리의 다른 글
2019 카카오 개발자 겨울 인턴십(징검다리 건너기) - Java (0) | 2020.05.06 |
---|---|
2019 카카오 개발자 겨울 인턴십(불량 사용자) - Java (0) | 2020.05.06 |
알고리즘(최댓값과 최솟값, 최솟값 만들기, 피보나치 수, 행렬의 곱셈) - Java (0) | 2020.05.04 |
알고리즘(땅따먹기, 폰켓몬, 숫자의 표현) (0) | 2020.04.28 |
알고리즘(단체사진 찍기, 올바른 괄호, 다음 큰 숫자) (0) | 2020.04.21 |