본문 바로가기

level27

[Algorithm] 6월 18일 알고리즘 연습(프로그래머스 LEVEL2) - 에이젠 Lv. 2 올바른 괄호 - 성공 //스택 이용 class Solution { boolean solution(String s) { boolean answer = true; char[] arr = s.toCharArray(); // [ (,),(,)] Stack stack = new Stack(); for(char ch : arr){ if(ch == ')' && !stack.isEmpty() && stack.peek() == '('){ stack.pop(); continue; } stack.push(ch); } if(stack.isEmpty()){ answer = true; }else{ answer = false; } return answer; } } Lv. 2 다음 큰 숫자 - 실패 내풀이 (1) : 정확.. 2022. 6. 18.
[Algorithm] 6월 11일 알고리즘 연습 (프로그래머스 LEVEL2) - 에이젠 Lv. 2 주식가격 - 실패 실패한 풀이 : 테스트케이스만 통과... 방법 자체는 틀린 것 같지 않아서 다시 해결해보아야겠다 class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; Queue tempQ = new LinkedList(); Stack stack = new Stack(); int pre = 0; for(int i = 0; i < prices.length; i++){ if(pre prices[i]){ int poped = stack.pop(); tempQ.add(0); } tempQ.add(prices[i]); //모두 빼낸 후 빼낸만큼 0을 쌓기 while(tempQ.size() .. 2022. 6. 11.
[Algorithm] 6월9일 알고리즘 연습 (프로그래머스 LEVEL2) - 에이젠 Lv. 2 다리를 지나는 트럭 - 성공 방법이 떠오르지 않아서 다리와 트럭 객체를 만들어서 해결해보려했다. 하지만 ConcurrentModificationException 에러가 발생하였다. Map.remove()과정에서 발생하였을 것이다. 1. map의 Key로 활용한 트럭객체의 값이 변경되는 mutable한 객체이기때문에 문제가 발생하는 것 같다. -> 아무 객체나 Map의 Key값으로 쓰면 안 되겠다. 값이 변하는 객체X 2. 두번째 이유는 반복문이 도는 도중에 컬렉션값을 변경하였기때문에 발생하는 것 같다. https://imasoftwareengineer.tistory.com/85 자바 Collection Iterator - ConcurrentModificationException 자바에서 Ite.. 2022. 6. 9.
[Algorithm] 6월8일 알고리즘 연습 (프로그래머스 level2) - 에이젠 Lv. 2 위장 - 성공 테스트케이스를 통과해도 채점결과가 처참한 경우가 많은 것 같다... 내풀이(1) : 정확도 25% : 한가지 or 모든 악세사리를 착용하는 경우만 생각함. 세가지 카테고리중 두개만 선택하는 경우 같은 케이스를 배제하는 실수. 해결 : 각각의 카테고리 마다 케이스는 카테고리개수 중 하나를 선택 OR 선택하지 않는다의 경우의수가 존재. 모두 곱한 후 아무선택도 하지 않는 경우를 배제. class Solution { public int solution(String[][] clothes) { int answer = 0; Map map = new HashMap(); for(int i = 0; i< clothes.length ; i++){ if(map.containsKey(clothes[i.. 2022. 6. 8.
[Algorithm] 6월 7일 알고리즘 연습 (프로그래머스 level2) - 에이젠 Lv. 2 게임 맵 최단거리 - 실패 내풀이 (1) : 정확도 55% : DFS는 최단거리구하기에 적합하지 않다. BFS로 다시 풀어볼것. class Solution { int N = 0; int M = 0; int[][] map = {}; boolean[][] visited = {}; int count = 0; int[][] dir = {{1,0},{0,1},{-1,0},{0,-1}}; boolean isPossible = false; int shortest = 10000; public int solution(int[][] maps) { int answer = 0; N = maps.length; M = maps[0].length; map = maps; visited = new boolean[N][M];.. 2022. 6. 7.
[Algorithm]6월6일 알고리즘 연습 (프로그래머스 level2) - 에이젠 가장큰수 - 실패 내풀이(1) : 일부 테스트케이스만 통과하고 나머지는 런타임 오류. - 아마도 자료형 범위를 초과했기 때문이라 예상. // 정수를 이어 붙여 만들 수 있는 가장 큰 수 //정수 N개 중 N개를 뽑아서 중복을 허용하지 않고 순서가 있게 배열. class Solution { int N = 0; boolean[] used = {}; int[] selected = {}; int[] nums = {}; //생성된 숫자들 배열마지막에 정렬 필요 ArrayList list = new ArrayList(); public String solution(int[] numbers) { String answer = ""; used = new boolean[numbers.length + 1]; nums = nu.. 2022. 6. 6.
[Algorithm] 6월1일 알고리즘 연습 (프로그래머스 2단계) Lv. 2 멀쩡한 사각형 - 실패 참고할 풀이: https://velog.io/@ajufresh/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%A9%80%EC%A9%A1%ED%95%9C-%EC%82%AC%EA%B0%81%ED%98%95-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-Java [프로그래머스] 멀쩡한 사각형 문제풀이 (Java) 프로그래머스 멀쩡한 사각형 문제풀이 velog.io 내풀이 class Solution { public long solution(int w, int h) { long answer = 1; //전체 칸수 long totalBox = w*h; long deletedBox = 0; int temp.. 2022. 6. 2.
728x90