전체 글
-
Level1) 자연수 뒤집어 배열로 만들기PS/programmers 2020. 9. 11. 03:15
class Solution { public int[] solution(long n) { String str = String.valueOf(n); char[] chars = str.toCharArray(); int[] answer = new int[chars.length]; for (int i = 0; i < chars.length/2; i++) { answer[i] = chars[chars.length-1-i] - '0'; answer[chars.length-1-i] = chars[i] - '0'; } if (answer[chars.length/2] == 0) { answer[chars.length/2] = chars[chars.length/2] - '0'; } return answer; } } - 성공..
-
Level1) 완주하지 못한 선수PS/programmers 2020. 9. 10. 15:25
import java.util.Arrays; public class Solution { public static String solution(String[] participant, String[] completion) { Arrays.sort(participant); Arrays.sort(completion); int i = 0; for (i = 0; i < completion.length; i++) { if (!participant[i].equals(completion[i])) { return participant[i]; } } return participant[i]; } } - 실패 - 다른 풀이 참조 - 나도 두 배열 정렬하고 participant[i] 값 빼는거 까진 생각했는데 만약에 partic..
-
Level1) 시저 암호PS/programmers 2020. 9. 9. 19:30
class Solution { public String solution(String s, int n) { char[] arr = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}; char[] brr = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; StringBuffer sb = new StringBuffer(); for (int i ..
-
Level1) 수박수박수박수박수박수?PS/programmers 2020. 9. 9. 18:58
class Solution { public String solution(int n) { String su = "수"; String bak = "박"; StringBuffer answer = new StringBuffer(); if (n == 1) { return su; } if (n % 2 == 0) { for (int i = 0; i < n/2; i++) { answer.append(su); answer.append(bak); } } else { for (int i = 0; i < n/2; i++) { answer.append(su); answer.append(bak); } answer.append(su); } return answer.toString(); } } - 성공 - 쉬운문젠데 어렵게 푼거 같..
-
다이나믹 프로그래밍 정리Algorithm 2020. 9. 9. 16:36
다이나믹 프로그래밍 Dynamic Programming (DP) - 메모리를 적절히 사용하여 수행 시간을 비약적으로 증가시키는 방법 - 이미 계산된 결과 (작은 문제)는 별도의 메모리 영역에 저장하여 다시 계산하지 않도록 한다. - 다이나믹 프로그래밍의 구현은 일반적으로 두 가지 방식 (탑다운, 보텀업)으로 구성된다. 다이나믹 프로그래밍의 사용 조건을 만족하는지 먼저 확인 1. 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있다. 2. 중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결한다. 다이나믹 프로그래밍 vs 분할정복 - 다이나믹 프로그래밍과 분할 정복은 모두 최적 부분 구조를 가질 때 사용할 수 있다. - 큰 문제를 작은 문제로 나눌 수 있으며 작은 문제의 답을 모아서 큰 문제를 해..