전체 글
LeetCode 66 Plus One
https://leetcode.com/problems/plus-one/ Plus One - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 참조: https://the-dev.tistory.com/55 public int[] plusOne(int[] digits) { int carry =1 ; int index = digits.length -1; while (index >= 0 && carry > 0) { digits[index] = (digits[index..
인프런 13. 큰 수 출력하기 (Java)
내 풀이 import java.util.Scanner; public class Main { public void solution(int[] arr) { StringBuilder sb = new StringBuilder(); sb.append(arr[0]).append(" "); for (int i = 0; i < arr.length- 1; i++) { if (arr[i] < arr[i+1]) { sb.append(arr[i+1]).append(" "); } } System.out.println(sb); } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.ne..
인프런 12. 암호(JAVA)
풀이 어려워 보이고 하다가 잘 안되어서 풀이 봤는데 너무 쉽게 풀어서 황당함. substring으로 7개 끊고, replace로만 # -> 1로 * -> 0으로 바꾸고 Integer.parseInt로 2진수 10진수로 변환하고 그 아스키 문자를 char로 형변환하여 answer에 붙여준다. 마지막으로 substring으로 끊어서 7개 이후의 문자로 다시 for문을 돈다. import java.util.Scanner; public class Main { private String solution(int n, String s) { String answer = ""; for (int i = 0; i < n; i++) { String tmp = s.substring(0, 7).replace('#', '1').r..
코드업 1916 : (재귀함수) 피보나치 수열 (Large)
피보나치 수열이란 앞의 두 수를 더하여 나오는 수열이다. 첫 번째 수와 두 번째 수는 모두 1이고, 세 번째 수부터는 이전의 두 수를 더하여 나타낸다. 피보나치 수열을 나열해 보면 다음과 같다. 1, 1, 2, 3, 5, 8, 13 … 자연수 N을 입력받아 N번째 피보나치 수를 출력하는 프로그램을 작성하시오. 단, N이 커질 수 있으므로 출력값에 10,009를 나눈 나머지를 출력한다. ※ 이 문제는 반드시 재귀함수를 이용하여 작성 해야한다. 금지 키워드 : for while goto 입력 자연수 N이 입력된다. (N은 200보다 같거나 작다.) 출력 N번째 피보나치 수를 출력하되, 10,009를 나눈 나머지 값을 출력한다. 입력 예시 7 출력 예시 13 풀이 DP를 처음 배울 때 많이 나오는 풀이 방법으..
코드업 1403 배열 두번 출력하기
https://codeup.kr/problem.php?id=1403 배열 두번 출력하기 k개의 숫자를 입력받은 순서대로 한 줄에 하나씩 출력한다. 그리고 한번 출력이 다 되면 다시 한번더 출력한다.(총 2번) codeup.kr 내 풀이 배열 두 번 출력하도록 2번 도는 외부 포문안에 배열 전체를 도는 for문을 배치하고. \n으로 한 줄 씩 출력하게 하였다. public class Codeup1403 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWrit..
코드업 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()..