diff --git "a/0503/Programmers/Lv1/\353\241\234\353\230\220\354\235\230\354\265\234\352\263\240\354\210\234\354\234\204\354\231\200\354\265\234\354\240\200\354\210\234\354\234\204_ko.java" "b/0503/Programmers/Lv1/\353\241\234\353\230\220\354\235\230\354\265\234\352\263\240\354\210\234\354\234\204\354\231\200\354\265\234\354\240\200\354\210\234\354\234\204_ko.java" new file mode 100644 index 0000000..8b3e5df --- /dev/null +++ "b/0503/Programmers/Lv1/\353\241\234\353\230\220\354\235\230\354\265\234\352\263\240\354\210\234\354\234\204\354\231\200\354\265\234\354\240\200\354\210\234\354\234\204_ko.java" @@ -0,0 +1,54 @@ +import java.util.HashMap; +import java.util.Map; + +class Solution1 { // 맵 사용한 풀이 + public int[] solution(int[] lottos, int[] win_nums) { + int[] answer = new int[2]; + Map map = new HashMap<>(6); + answer[1] = 7; + int plus = 0; + for (int i = 0; i < 6; i++) + map.put(win_nums[i], true); + for (int i = 0; i < 6; i++) { + if (lottos[i] == 0) + plus++; + else if (map.containsKey(lottos[i])) + answer[1]--; + } + + answer[0] = answer[1] - plus; + + for (int i = 0; i < 2; i++) + if (answer[i] == 7) + answer[i] = 6; + + return answer; + } + +} + +class Solution2 { // 반복문 풀이 + public int[] solution(int[] lottos, int[] win_nums) { + int[] answer = new int[2]; + answer[1] = 7; + int plus = 0; + for (int i = 0; i < 6; i++) { + if (lottos[i] == 0) { + plus++; + continue; + } + for (int j = 0; j < 6; j++) + if (lottos[i] == win_nums[j]) { // 일치하면 등수 감소 + answer[1]--; + break; + } + } + answer[0] = answer[1] - plus; + + for (int i = 0; i < 2; i++) + if (answer[i] == 7) + answer[i] = 6; + + return answer; + } +} diff --git "a/0503/Programmers/Lv2/\355\214\214\354\235\274\353\252\205\354\240\225\353\240\254_ko.java" "b/0503/Programmers/Lv2/\355\214\214\354\235\274\353\252\205\354\240\225\353\240\254_ko.java" new file mode 100644 index 0000000..77cf9ba --- /dev/null +++ "b/0503/Programmers/Lv2/\355\214\214\354\235\274\353\252\205\354\240\225\353\240\254_ko.java" @@ -0,0 +1,55 @@ +import java.util.Collections; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.ArrayList; + +class Solution { + static Pattern p = Pattern.compile("[0-9]+"); // 숫자 정규표현식 + static Matcher m; + static List list = new ArrayList<>(); + + static class File implements Comparable { + String header; + String number; + String tail; + + @Override + public int compareTo(File o) { + int sCom = this.header.compareToIgnoreCase(o.header); + if (sCom == 0) // 헤더 같으면 숫자 비교 + return Integer.parseInt(this.number) - Integer.parseInt(o.number); + return sCom; + } + } + + public String[] solution(String[] files) { + int fLen = files.length; + String[] answer = new String[fLen]; + for (int i = 0; i < fLen; i++) + findNum(files[i]); + Collections.sort(list); // 정렬 + for (int i = 0; i < fLen; i++) { + File file = list.get(i); + answer[i] = file.header + file.number + file.tail; + } + + return answer; + } + + static void findNum(String str) { + File file = new File(); + m = p.matcher(str); // 숫자 찾아서 + m.find(); + int start = m.start(); + int end = m.end(); + if (end - start > 5) // 숫자는 5개까지 + end = start + 5; + + file.header = str.substring(0, start); // 숫자 앞까지 + file.number = str.substring(start, end); // 숫자 + file.tail = str.substring(end); // 숫자 뒤부터 + list.add(file); + } + +} \ No newline at end of file diff --git "a/0503/Programmers/Lv3/\354\210\253\354\236\220\352\262\214\354\236\204_ko.java" "b/0503/Programmers/Lv3/\354\210\253\354\236\220\352\262\214\354\236\204_ko.java" new file mode 100644 index 0000000..807dc60 --- /dev/null +++ "b/0503/Programmers/Lv3/\354\210\253\354\236\220\352\262\214\354\236\204_ko.java" @@ -0,0 +1,23 @@ +import java.util.Arrays; + +class Solution3 { + + public int solution(int[] A, int[] B) { + int n = A.length; + int answer = 0; + int idxB = 0; // 확인할 B값 인덱스 + + Arrays.sort(A); + Arrays.sort(B); + + for (int i = 0; i < n; i++) + while(idxB < n) // B값 다 확인할 때까지 + if (A[i] < B[idxB++]) { // 이기면 다음 B값과 다음 A값 비교 + answer++; + break; + } + + return answer; + } + +} \ No newline at end of file