문제 문제 풀이 정규식을 사용할 줄 안다면 쉽게 풀 수 있는 문제이다. 정규식 관련해서는 개인적으로 공부를 더 해봐야 겠다. (블로그에서 따로 정리할 예정) 나의 답안 public static String solution(String new_id) { String answer = new_id; answer = answer.toLowerCase(); answer = answer.replaceAll("[^-_.a-z0-9]", ""); answer = answer.replaceAll("[.]{2,}", "."); answer = answer.replaceAll("^[.]|[.]$", ""); if ("".equals(answer)) answer = "a"; if (answer.length() > 15) an..
문제 문제 풀이 카운트 변수를 하나 선언을 하고 카운트가 0일 때 문자열을 기준값으로 초기화 시킨다. 같은 문자일 때는 카운팅 되는 값을 +1, 아닐때는 -1 하는 방식으로 하여 처리하였음. 나의 답안 public static int solution(String s) { int answer = 0; int count = 0; char first = s.charAt(0); for (char c : s.toCharArray()){ if (count == 0) first = c; if (first == c) count++; else count--; if (count == 0) answer++; } if (answer > 0) answer++; return answer; }
문제 문제 풀이 해당 문제에서 가장 이해하기 어려웠던건 단순 board의 순서이다. 2차배열로 5개로 주어지는데 낮은 수가 당연히 아래에 쌓일 것이라고 생각하고 접근했는데 결과가 나오지 않아 다시 확인해보니 내림차순으로 불러와야 제대로 문제를 풀 수 있었다. int[][] board = {{0, 0, 0, 0, 0}, {0, 0, 1, 0, 3}, {0, 2, 5, 0, 1}, {4, 2, 4, 4, 2}, {3, 5, 1, 3, 1}}; {3, 5, 1, 3, 1} {4, 2, 4, 4, 2} {0, 2, 5, 0, 1} {0, 0, 1, 0, 3} {0, 0, 0, 0, 0} board를 제대로 정리 했을 시 위와 같은 모습으로 쌓이게 된다 거기서 basket에 담아주면서 상단에있는 값과 같을 때 사..
문제 문제 풀이 해당 문제에서 가장 고민해야 하는 부분은 2, 5, 8, 0 을 입력할 때 어떻게 그 값과 가까운 위치의 손을 불러오는가 이다. 가운데 값보다 작은 값에 손이 있으면 나누기를 통해 위치를 추적하고, 가운데 값보다 높은 값에 손이 있으면 나머지 값을 통해 계산이 가능하다. int leftHand = Math.abs(i - left) / 3 + Math.abs(i - left) % 3; int rightHand = Math.abs(i - right) / 3 + Math.abs(i - right) % 3; 나의 풀이 public static String solution(int[] numbers, String hand) { StringBuilder sb = new StringBuilder(); ..
문제 문제 풀이 아기가 할 수 있는 말은 아래와 같다. String[] joka = {"aya", "ye", "woo", "ma"}; 그리고 중복된 말은 하지 못하니 연속으로 할 수 있는 말을 필터링 할 수 있는 값을 지정한다. for (String ban : joka) { String sumBan = ban + ban; str = str.replaceAll(sumBan, "X"); } 그렇게 한번 걸러진 내용에서 아기가 할 수 있는 말만 변환을 시킨다. for (String bab : joka) { str = str.replaceAll(bab, "O"); } 마지막으로 해당 값에서 O이외 다른 값이 있으면 다음으로 넘어가게 한다. boolean check = true; for (int i = 0; i ..
문제 문제 풀이 3개의 큐 자료구조를 만들어서 각 큐의 peek의 값을 비교하여 같은 값이 있을 때 계속 반복문이 수행 되도록 함. 같은 값이 없을 때 No를 출력. 나의 답안 public static String solution(String[] cards1, String[] cards2, String[] goal) { String answer = "Yes"; Queue queue1 = new ArrayDeque(List.of(cards1)); Queue queue2 = new ArrayDeque(List.of(cards2)); Queue queue3 = new ArrayDeque(List.of(goal)); for (int i = 0; i < goal.length; i++) { if (queue3.pe..