본문 바로가기

전체 글61

프로그래머스 - 메뉴 리뉴얼 프로그래머스 - 메뉴 리뉴얼 해당 문제는 입력받은 orders로 만들수 있는 모든 메뉴의 갯수 및 중복된 조합이 들어오면 count를늘리는 식으로 course의 종류와 주문 횟수를 저장 한 후 이후 course를 구성할 때 가장인기있는 메뉴만 선택 하여 answer 메뉴를만들어 주는식으로 문제를 구현했습니다. 처음에는 가장 인기있는 메뉴 라는 조건을 놓쳐 모든 경우의 수중 2번 이상 주문된 적 있는 메뉴들을 리턴해 주려고 해서 문제가 있었습니다. private Map courseMap; public String[] solution(String[] orders, int[] course) { courseMap = new HashMap(); List answer = new ArrayList(); for (St.. 2022. 4. 8.
프로그래머스 - 짝지어 제거하기 프로그래머스 - 짝지어 제거하기 해당문제는 스택에 한글자씩 넣어 주며 스택의 peek 값과 넣어주는 값이 같다면 스택에 넣지 않고 pop을 하면서 문자를 제거 해 주었습니다. 최종적으로 스택에 값이 남아 있다면 제거하는 것에 실패한 것으로 간주 해 0값을 리턴해 주었습니다. public int solution(String s) { Stack pairStack = new Stack(); for(int i = 0; i < s.length(); i++) { char compareChar = s.charAt(i); if (!pairStack.isEmpty() && pairStack.peek() == compareChar) { pairStack.pop(); } else { pairStack.push(compare.. 2022. 4. 7.
프로그래머스 - 124 나라의 숫자 프로그래머스(연습문제) - 124 나라의 숫자 해당 문제는 3으로 나누 몫과 나머지 값을 이용해 숫자 문자열을 만들면 되는 문제였습니다. rule은 나머지가 각각 0, 1, 2 일때 4, 1, 2 문자열을 붙여주었고, 나온 몫은 다시 재귀로 넣어주는데 이때 나머지가 0인 경우에는 몫에서 1을 뺀 후 재귀 호출을 실행하였습니다. base case는 n이 1보다 작은경우로 생각했었고 아래와 같이 구현하였습니다. private String[] rule = new String[]{"4", "1", "2"}; public String solution(int n) { if (n < 1) { return ""; } int remainder = n % 3; int quotient = n / 3; if (remainde.. 2022. 4. 6.