목록기타/코딩테스트 (38)
개발놀이터
package string.CircleString18.my; import java.util.Scanner; public class Main { /** * -내 풀이- * 이번 문제 또한 lt 와 rt 를 도입해 공백, 특수문자를 if, else if 문으로 일일이 검사했다 * * --피드백-- * 1-7번 문제와 동일한 피드백, 알고리즘 / 자료구조를 사용했다는 느낌이 안든다. * * -선생님의 풀이- * 정규표현식 + replaceAll 로 아주 간단하게 풀어냈다. 간단한 정규표현식 정도는 알아두면 좋을 것 같다. * * "[^A-Z]" * ^ : ~가 아닌 * A-Z : A 부터 Z 까지 * = A 부터 Z 가 아닌 */ public static void main(String[] args) { Sca..
package string.CircleString17.my; import java.util.Scanner; public class Main { /** * -나의 풀이- * 이전 시간에 배웠던 lt 와 rt 의 개념을 도입해서 각각의 문자가 다르면 checkPoint 를 1 증가시켜서 * 최종적으로 0이면 (증가하지 않으면 -> 각각의 문자가 같으면) YES 를 리턴, 0이 아니면 NO 를 리턴 * * --피드백-- * 음... 문제는 맞았다. 하지만 알고리즘, 자료구조를 사용했다는 느낌은 전혀 받을 수 없었음 * 그냥 꼼수같은 느낌..? 이거 실제로 코딩테스트에서 제출하면 답은 맞지만 높은 점수는 주지 않을듯 함 * * -선생님의 풀이- * 1. 전체 길이 / 2 한만큼까지 for 문을 돌려서 앞 뒤를 ..
package string.duplicateword16.my; import java.util.Scanner; public class Main { /** * 맞췄다아아아아아아아아아아아아아아아아 * * savePoint 의 개념 도입으로 save 배열에 알파벳이 담기는 첫 순간은 지나가고 * 그 후에는 savePoint 의 수가 1이 아니게 되기 때문에 이점을 이용하여 중복 제거 * * 진짜 자괴감 엄청나다... * 선생님이 너무 쉽게 풀어버려서 똥꼬쑈 한 내가 너무 바보된 느낌... * * String 클래스의 indexOf 를 이용하면 정말정말 쉽게 풀린다... * * cf) indexOf 란? * 쉽게 말해 index 위치를 알려주는 것이다. * * ex) String str = Spring 이라는 글..
package string.flipspecificcharacter15.my; import java.util.Scanner; public class Main { /** * 반은 맞추고 반은 못맞춘 문제... 정말 아쉽다... * * 키포인트 * 1. '특수문자' 면 lt 는 ++ rt 는 -- 해야한다. * 2. if / else if / else 문으로 하나로 묶어야 한다. * * if (lt = 특수문자) { * lt++; * } * else if (rt = 특수문자) { * rt--; * } * else (둘다 알파벳인 경우) { * 둘이 바꿔 * } * * 1번은 생각했는데 2번을 생각 못했다... 진짜 개바보보 */ public static void main(String[] args) { Scan..
package string.flipword14.my; import java.util.Scanner; public class Main { /** * 으아아아아아아아 맞췄다아아아아아아아아아아아아아 */ /** * case1: * StringBuilder 클래스의 reverse 를 이용하면 정말 쉽게 풀린다. * 내가 푼 방법은 정말 원시적인 리버스이고 선생님이 푼 방식이 정말 깔끔한 리버스이다 다시 복습할 것 * * case2: * 1. String 문자열을 toCharArray 로 char 배열로 바꾼다. * * 2. lt, rt 의 개념 도입 * cf) lt, rt 란? * 예를 들어 study 라는 문자열을 char 배열로 바꾸면 * 0 1 2 3 4 * s t u d y * 이렇게 바뀐다. * * 여..
split 메서드를 이용해서 단어단어로 쪼개는 시도 까지는 정답이었으나 최댓값 구하는 알고리즘을 생각해내지 못했음 package string.wordsinsentence13.my; import java.util.Scanner; public class Main { /** * split 메서드를 이용해서 나누고 list 로 바꾼뒤 진행하려고 했으나 해결하지 못함 * * 최댓값 구하는 알고리즘을 생각하지 못했음음 * int max = Integer.MIN_VALUE; * int len = str.length(); * * if (len > max) { * len = max; * } */ public static void main(String[] args) { Scanner kb = new Scanner(Syst..
Character 클래스에 isLowerCase, isUpperCase의 존재를 몰랐다... Character 클래스 은근 자주 쓰일듯 하다. 풀지는 못했고 선생님 코드로 바로 확인하겠다. package string.upperlower12.teacher; import java.util.Scanner; public class Main { private static String solution(String str) { String answer = ""; for (char x : str.toCharArray()) { if (Character.isLowerCase(x)) answer += Character.toUpperCase(x); else answer += Character.toLowerCase(x); //..
package string.findletter.my; import java.util.Scanner; public class Main { /** * 문제점 * 1. inputSecond 를 String 이 아니라 char 로 받아서 하는게 더 깔끔함 * 2. divideLetter 메서드를 사용 했는데 이거 굳이 필요한가? 싶은 생각 * * 해결방안 * 1. inputSecond 를 char 로 받아서 한글자만 비교하면 된다. * 2. charAt 을 적극 이용하면 divideLetter 필요없다. */ public static void main(String[] args) { Scanner input = new Scanner(System.in); String inputFirst = input.nextLin..