Search
Duplicate

05.29 입문 문제풀이

태그
대분류
코딩테스트 입문
비고
모스부호(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
복사