목록코딩테스트준비 (63)
원하는 것은 뭐든지
문제풀이입력으로 정수 배열이 주어지면 왼쪽에서 오른쪽으로 갈 때 증가하는 수의 개수가 가장 큰 것을 출력하는 것이다.예를 들어,nums = {10,9,2,5,3,7,101,18}이면 (2,5,7,101), (2,3,7,101), (2,5,7,18), (2,3,7,18)의 경우가 가장 긴 경우들이고 길이니까 4가 나와야 한다.제출 1 - 정답class Solution { public static int lengthOfLIS(int[] nums) { int n = nums.length; int[] dp = new int[n]; int maxLength = 1; for (int i = 0; i nums[j]) { dp[..
문제풀이문제 설명에 영어는 괜히 헷갈리게만 한다.이 문제는 괄호들이 주어지는데 문자열을 한 글자씩 옆으로 밀면서 올바른 괄호가 되는 경우를 찾아서 return 하면 된다.왼쪽 끝으로 민 문자열은 오른쪽으로 가서 붙는다.제출 1 - 정답import java.util.*;class Solution { public int solution(String s) { int answer = 0; for(int i=0;i stack = new ArrayDeque(); char[] chrArr = str.toCharArray(); for(int i=0;i StringBuilder를 사용해서 문자열을 만들어서 확인하는 방식으로 진행했다.다른..
문제풀이원하는 물건을 모두 할인가격에 사기 위해서 언제 가입을 해야 하는지 찾는 문제였다.원하는 물건과 개수 그리고 할인품목들이 입력으로 주어지는데 할인품목은 당일에 하나씩만 구매할 수 있다. 또 할인 물품을 사려면 회원가입을 해야 하는데 10일 동안만 유지되었다. 해서 10일을 최대한 활용해서 원하는 물건을 구매할 수 있는 날이 며칠인지를 구하면 된다.제출 1 - 정답import java.util.*;class Solution { public int solution(String[] want, int[] number, String[] discount) { int answer = 0; Map map = new HashMap(); Map checkMap = new ..
문제풀이입력으로 현재 달리고 있는 등 수와 해설진들이 호명할 배열이 주어진다.해설진들이 호명할 때마다 해당선수가 앞에 있는 선수를 추월한다. 예를 들어,선희 - 미진 - 대철 - 희진이가 달리고 있을 때 해설진이 미진! 대철! 선희! 했다면 미진! 호출 시, 미진 - 선희 - 대철 - 희진대철! 호출 시, 미진 - 대철 - 선희 - 희진선희! 호출 시, 미진 - 선희 - 대철 - 희진 으로 순위가 결정된다.제출 1 - 정답import java.util.*;class Solution { public String[] solution(String[] players, String[] callings) { String[] answer = new String[players.length]; ..