diff --git a/0503/Programmers/Lv1/Lv1_noh.java b/0503/Programmers/Lv1/Lv1_noh.java new file mode 100644 index 0000000..107d2a3 --- /dev/null +++ b/0503/Programmers/Lv1/Lv1_noh.java @@ -0,0 +1,26 @@ +class Solution { + public int[] solution(int[] lottos, int[] win_nums) { + int[] answer = {}; + answer = new int[2]; + + int zero = 0; + int same = 0; + for (int i = 0; i < lottos.length; ++i) { + if (lottos[i] == 0) { + ++zero; + continue; + } + for (int j = 0; j < win_nums.length; ++j) { + if (lottos[i] == win_nums[j]) { + ++same; + break; + } + } + } + + answer[0] = 7 - (same + zero == 0 ? 1 : same + zero); + answer[1] = 7 - (same == 0 ? 1 : same); + + return answer; + } +} \ No newline at end of file diff --git a/0503/Programmers/Lv2/Lv2_noh.java b/0503/Programmers/Lv2/Lv2_noh.java new file mode 100644 index 0000000..4c5b75c --- /dev/null +++ b/0503/Programmers/Lv2/Lv2_noh.java @@ -0,0 +1,56 @@ +import java.util.Arrays; + +class Solution { + public String[] solution(String[] files) { + String[] answer = {}; + + Arrays.sort(files, (o1, o2) -> { + // 스트링으로 변환 + String str1 = o1; + String str2 = o2; + + // 소문자로 바꿔서 비교 + str1 = str1.toLowerCase(); + str2 = str2.toLowerCase(); + + // str1의 넘버의 시작과 끝 인덱스 찾기 + int idx1 = -1;// 시작 인덱스 + int idx2 = -1;// 끝 인덱스 + for (int i = 0; i < str1.length(); ++i) + if ('0' <= str1.charAt(i) && str1.charAt(i) <= '9') { + if (idx1 == -1) { + idx1 = i; + idx2 = i; + } else if (idx2 == i - 1) + idx2 = i; + } + // str1을 찾은 인덱스로 나누기 + String head1 = str1.substring(0, idx1); + String number1 = str1.substring(idx1, idx2 + 1); + + // str2도 마찬가지로 진행 + idx1 = -1; + idx2 = -1; + for (int i = 0; i < str2.length(); ++i) + if ('0' <= str2.charAt(i) && str2.charAt(i) <= '9') { + if (idx1 == -1) { + idx1 = i; + idx2 = i; + } else if (idx2 == i - 1) + idx2 = i; + } + String head2 = str2.substring(0, idx1); + String number2 = str2.substring(idx1, idx2 + 1); + + // 헤드가 같으면 넘버로 비교 + if (head1.equals(head2)) { + return Integer.parseInt(number1) - Integer.parseInt(number2); + } + // 헤드가 다르면 헤드로 비교 + return head1.compareTo(head2); + }); + + answer = files; + return answer; + } +} \ No newline at end of file