목록기타/코딩테스트 (38)
개발놀이터
package 배열1차원2차원.뒤집은소수2다시6.my; import java.util.Scanner; public class Main { /** * -내 풀이- * 기본적으로 잘 풀었다. * * --피드백-- * 코드가 좀 더럽다. * 소수인지 아닌지 확인하고 boolean 으로 리턴하는 함수를 하나 만들어서 출력하는게 좀 더 깔끔해 보이긴 하다. * * -선생님의 풀이- * 숫자를 뒤집는 것이 개인적으로 맘에 안든다. 내 방식이 좀 더 깔끔해 보인다. */ public static void main(String[] args) { Scanner kb = new Scanner(System.in); int num = kb.nextInt(); int[] arr = new int[num]; for (int i ..
package 배열1차원2차원.소수의개수2다시5.my; import java.util.Scanner; public class Main { /** * -내 풀이- * 소수의 성질을 이용해 풀려고 했지만 이중 for 문이 아니면 안풀려서 해결하지 못함 * * -선생님의 풀이- * 에라토스테네스의 체를 이용해 풀면 아주 간단하게 풀린다. * * cf) 에라토스테네스의 체란? * 배열을 만들고 해당 인덱스가 0이면 체크하는 방식이고 체크한 후에 그 인덱스와 인덱스의 배수들을 전부 1로 바꿔줌으로써 * 해당 인덱스의 배수에 걸렸을 때는 1이기 때문에 체크하지 않는 방식이다. * * ex) 입력값이 10이면 * *초기화 * 2 3 4 5 6 7 8 9 10 * 0 0 0 0 0 0 0 0 0 * * * i = 2 ..
package 배열1차원2차원.피보나치수열2다시4.my; import java.util.Scanner; public class Main { /** * 피드백 할 것 없습니다. */ public static void main(String[] args) { Scanner kb = new Scanner(System.in); int input = kb.nextInt(); System.out.println(solution(input)); } private static String solution(int input) { String answer = ""; int now = 1; int[] arr = new int[input + 2]; arr[0] = 1; arr[1] = 1; for (int i = 0; i < i..
package 배열1차원2차원.가위바위보2다시3.my; import java.util.Scanner; public class Main { /** * 잘 풀었습니다. 피드백 할 것은 없습니다. */ public static void main(String[] args) { Scanner kb = new Scanner(System.in); int num = kb.nextInt(); int[] A = new int[num], B = new int[num]; for (int i = 0; i < num; i++) { A[i] = kb.nextInt(); } for (int i = 0; i < num; i++) { B[i] = kb.nextInt(); } for (int i = 0; i < num; i++) { Sy..
package 배열1차원2차원.보이는학생2다시2.my; import java.util.Scanner; public class Main { /** * 처음으로 완벽하게 푼 문제입니다. 정말 잘했어요 나 자신 */ public static void main(String[] args) { Scanner kb = new Scanner(System.in); int num = kb.nextInt(); int[] arr = new int[num]; for (int i = 0; i < num; i++) { int input = kb.nextInt(); arr[i] = input; } System.out.println(solution(num, arr)); } private static int solution(int nu..
1-1. 문자 찾기 문자열에서 해당 문자가 몇개나 들어있나 세어보는 문제 String str = input.charAt(0);// 문자열에서 한글자 한글자 떼어낼 때 사용 1-2. 대소문자 변환 소문자 -> 대문자, 대문자 -> 소문자로 변환하는 문제 Character 클래스의 toUpperCase, toLowerCase 1-3. 문장 속 단어 문장 속 가장 긴 단어를 찾아내는 문제 String answer = ""; int tmp = Integer.MIN_VALUE; String[] str = input.split(" "); for (String x : str) { if (tmp > str.length()) { tmp = str.length(); answer = x; } } 1-4. 단어 뒤집기 goo..
package string.SecureNumber112.my; import java.util.Scanner; public class Main { /** * -내 풀이- * 입력 받은 문자열을 replace 를 이용해 1 과 0 으로 이루어진 문자열로 바꾸는데 성공 했다 * 그리고 7개 단위로 끊어서 나열하는 것까지도 성공했다. * 하지만 10진수를 2진수로 바꾸는 것을 몰라서 그리고 2진수를 아스키코드로 다시 바꾸는 것도 몰라서 * 결국 구글링으로 해결했음 * * -선생님 풀이- * 1. 문자열을 0부터 7까지 substring 을 이용해 자른다 * 2. replace 메서드를 이용해 # 은 1 로 * 은 0 으로 바꾼다. * 3. Integer 클래스에 parseInt 로 2진수 -> 10진수로 바꾼다..
package string.CompressionString111.my; import java.util.Scanner; public class Main { /** * -내 풀이- * i + 1 까지 넣으면 index 가 초과되어 로직을 추가했는데 괜한 뻘짓이었다. * * --피드백-- * 그냥 들어오는 input 에 빈칸 하나 추가하면 되는 것이었다.. 너무 허무.. */ public static void main(String[] args) { Scanner kb = new Scanner(System.in); String input = kb.next(); System.out.println(solution(input)); } private static String solution(String input) {..
package string.MinimumCharacterDistance110.my; import java.util.Scanner; public class Main { /** * -내풀이- * 이건 진짜 아닌거 같아서 그냥 포기합니다. 시간만 오지게 잡아먹었네요... * * -선생님 풀이- * 1. int 배열을 해당 문자 크기만큼 만들고 * 2. 배열 최대 크기보다 훨씬 큰 p 를 설정한 후에 * 3. 왼쪽에서 오른쪽으로 for 문을 돌면서 왼쪽 타겟까지의 거리를 잰다. * t e a c h e r m o d e -> e (만약 맨 첫글자가 타겟이 아니면 p 타겟이면 0 으로 설정한다.) * x 0 1 2 3 0 1 2 3 4 0 (x = p) * 4. 다음엔 오른쪽에서 왼쪽으로 for 문을 돌리면서 오..
package string.ExtractionNumber19.my; import java.util.Scanner; public class Main { /** * -내 풀이- * replaceAll 메서드를 이용해 정규표현식으로 숫자가 아닌 것들을 빈칸으로 바꿔 숫자만 뽑았다. * * --피드백-- * IDEA 의 도움을 받아버렸다... 실전에서였으면 해결하기 쉽지 않았을 문제 * * --선생님의 풀이-- * 1. answer = 0 으로 초기화 후 String -> toCharArray 로 바꾸고 각각의 문자를 아스키코드로 48 ~ 57 로 설정하여 * for (char x : str.toCharArray()) { * if (x >= 48 && x 100) { throw new StringOrNumber..