알고리즘
코드업 1402 거꾸로 출력하기 3
https://codeup.kr/problem.php?id=1402 거꾸로 출력하기 3 첫째 줄에 데이터의 개수 n이 입력된다. ( n arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } StringBuilder sb = new StringBuilder(); for (int i = arr.length-1; i >= 0; i--) { sb.append(arr[i]).append(" "); } bw.write(sb.toString()); bw.flush(); bw.close(); br.close(); } }

인프런 11. 문자열 압축(JAVA)
내 풀이 걍 근본없이 막 풀고 틀리면 보완하는 식으로 풀었음. 특히 마지막 문자 때문에 if문을 추가해주었다. public class Main { public void solution(String s) { StringBuilder sb = new StringBuilder(); int count = 1; for (int i = 1; i < s.length(); i++) { if (s.charAt(i-1) != s.charAt(i)) { sb.append(s.charAt(i - 1)); if (count != 1) sb.append(count); count = 1; if (i== s.length()-1) { sb.append(s.charAt(i)); if (count != 1) sb.append(count)..

인프런 10. 가장 짧은 문자 거리 (Java)
내 풀이가 없고 강사님 풀이임. 어려웠다. 앞에서 뒤로 한번 구하고 뒤에서 앞으로 거리를 구해서 최소값을 찾아서 배열에 담아줌 public class Main { public int[] solution(String s, char t) { int[] answer = new int[s.length()]; char[] x = s.toCharArray(); int p = 1000; for (int i = 0; i =0 ; i--) { if (x[..

인프런 9. 숫자만 추출 (Java)
내 풀이 Character클래스의 isDigit 메서드를 활용하여 숫자 판별 public class Main { public void solution(String s) { String answer = ""; for (char x : s.toCharArray()) { if (Character.isDigit(x)) answer+=x; } System.out.println(Integer.parseInt(answer)); } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); String s = sc.next(); T.solution(s); } } 다른 풀이 아스키코드 활용. 48~ 57..

8. 유효한 팰린드롬
풀이 replaceAll에 정규식으로 A-Z 대문자 알파벳 아니면 빈문자열로 교체 그외에는 그냥 reverse와 원 문자열 비교 public class Main { public void solution(String str) { str = str.toUpperCase().replaceAll("[^A-Z]", ""); String tmp = new StringBuilder(str).reverse().toString(); System.out.println(str.equals(tmp) == true ? "YES": "NO"); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine()..

인프런 7. 회문 문자열(JAVA)
내 풀이 회문은 자주 풀어서인지 풀이법을 외운듯 원래는 소문자로 변경하고 체크했는데, equalsIgnoreCase이면 대소문자 변환이 필요없다. public class Main { public void solution(String str) { //str = str.toLowerCase(Locale.ROOT); String str1 = new StringBuilder(str).reverse().toString(); if (str.equalsIgnoreCase(str1)) { System.out.println("YES"); } else System.out.println("NO"); } public static void main(String[] args) { Scanner sc = new Scanner(Sy..

팰린드롬 판단하기
첫 번째 for문은 공백과 마침표를 걸러내기 위한 for문 그리고 두 번째 for문은 len/2 앞까지만 확인하고 앞뒤로 확인하여 다르다면 false 이상 없으면 true를 반환 boolean solution(String sentence){ String str = ""; for(int i = 0; i < sentence.length(); i++){ char c = sentence.charAt(i); if(c != ' ' && c != '.') str += c; } int len = str.length(); for(int i = 0; i < len / 2; i++){ if(str.charAt(i) != str.charAt(len - 1 - i)) return false; } return true; }

369게임의 박수의 갯수 구하기
이미 다 작성된 코드에 if문만 내가 작성한거임. while문으로 저렇게 박수 횟수를 구할 생각을 못했을거 같음 public int solution(int number) { int count = 0; for (int i = 1; i

인프런 6. 중복 문자 제거 (Java)
내 풀이 ArrayList의 contains로 list에 안 담겨 있는 문자를 추가해주고 출력 public class Main { public String solution(String str) { String answer = ""; ArrayList list = new ArrayList(); char[] c = str.toCharArray(); for (int i = 0; i < str.length(); i++) { if (!list.contains(c[i])) { list.add(c[i]); } } for (int i = 0; i < list.size(); i++) { answer += list.get(i); } return answer; } public static void main(String[] ..

인프런 5. 특정 문자 뒤집기 (Java)
풀이 4번의 세번째 투포인터 풀이와 같은 방법을 사용하는데 문제 설명이 자세하지 않아서 특수문자 일 경우 스킵하는 걸 상세하게 구현하지 못했다. public class Main { public String solution(String str) { String answer= ""; // 특정문자만 뒤집을 때, char[] s = str.toCharArray(); int lt = 0, rt = str.length()-1; while (lt