모스부호(1)
package programmers.CodingBegginerTraining;
import java.util.*;
public class PROB18 {
public static void main(String[] args) {
String letter = ".... . .-.. .-.. ---";
System.out.println(solution(letter));
}
public static String solution (String letter) {
// 모스 배열
String[] morse = {".-", "-...", "-.-.", "-..", ".", "..-.",
"--.", "....", "..", ".---", "-.-", ".-..",
"--", "-.", "---", ".--.", "--.-", ".-.",
"...", "-", "..-", "...-", ".--", "-..-",
"-.--", "--.."};
List<String> morseList = new ArrayList<>(Arrays.asList(morse));
// 알파벳 배열
String[] alphabet = new String[26];
char character = 'a';
for (int i = 0; i < alphabet.length; i++) {
alphabet[i] = String.valueOf(character++);
}
// letter 배열
String[] strArr = letter.split(" ");
StringBuilder sb = new StringBuilder();
int idx;
for (int i = 0; i < strArr.length; i++) {
idx = morseList.indexOf(strArr[i]);
sb.append(alphabet[idx]);
}
return sb.toString();
}
}
Java
복사
A 로 B 만들기
package programmers.CodingBegginerTraining;
import java.util.*;
public class PROB19 {
public static void main(String[] args) {
String before = "olleh";
String after = "hello";
System.out.println(solution(before, after));
}
public static int solution (String before, String after) {
String[] beforeArr = before.split("");
Arrays.sort(beforeArr);
String[] afterArr = after.split("");
Arrays.sort(afterArr);
for (int i = 0; i < beforeArr.length; i++) {
if (!beforeArr[i].equals(afterArr[i])) {
return 0;
}
}
return 1;
}
}
Java
복사
2 차원으로 만들기
package programmers.CodingBegginerTraining;
import java.util.Arrays;
public class PROB20 {
public static void main(String[] args) {
int[] num_list = {1, 2, 3, 4, 5, 6, 7, 8};
int n = 2;
System.out.println(Arrays.deepToString(solution(num_list, n)));
}
public static int[][] solution (int[] num_list, int n ) {
// 새로운 배열
int[][] numArr = new int[num_list.length / n][n];
int idx = 0;
for (int i = 0; i < numArr.length; i++) {
for (int j = 0; j < n; j ++) {
numArr[i][j] = num_list[idx++];
}
}
return numArr;
}
}
Java
복사
팩토리얼
class Solution {
public int solution(int n) {
int fac = 1;
int num = 1;
while (fac <= n) {
num++;
fac *= num;
}
return num - 1;
}
}
Java
복사
가까운 수
import java.util.*;
import static java.lang.Math.abs;
class Solution {
public int solution(int[] array, int n) {
// 절댓값 저장 배열
List<Integer> abs = new ArrayList<>();
for (int i = 0; i < array.length; i++) {
abs.add(abs(array[i] - n));
}
// 최솟값 찾기
int min = Collections.min(abs);
int firstIdx = abs.indexOf(min);
int lastIdx = abs.lastIndexOf(min);
if (firstIdx == lastIdx) {
return array[firstIdx];
} else {
return Math.min(array[firstIdx], array[lastIdx]);
}
}
}
Java
복사
k 의 개수
package programmers.CodingBegginerTraining;
public class PROB22 {
public static void main(String[] args) {
int i = 1;
int j = 13;
int k = 1;
System.out.println(solution(i, j, k));
}
public static int solution (int i , int j, int k) {
int answer = 0;
String number;
for (int idx = i; idx <= j; idx++) {
number = String.valueOf(idx);
for (int s = 0; s < number.length(); s++) {
if (String.valueOf(number.charAt(s)).equals(String.valueOf(k))) {
answer++;
}
}
}
return answer;
}
}
Java
복사