본문 바로가기

정리60

완전탐색 - 카펫 프로그래머스 (완전탐색) - 카펫 해당 문제는 yellow로 만들 수 있는 사각형의 가로 세로 길이를 구하면 해당 사각형을 감싼 brown 사각형의 가로 세로 길이를 구할 수 있습니다(yellow 가로 + 2, yellow 세로 + 2). 이를 통해 해당 사각형을 감싼 brown의 갯수를 구할 수 있고, 입력받은 brown 갯수와의 비교를 통해 문제가 원하는 brown의 가로 세로 길이를 구할 수 있습니다. 문제에 가로의 길이가 세로의 길이보다 크거나 같다는 제약조건이 있어 시작 Width가 큰것부터 작은순으로 반복문이 돌도록 하였습니다. public int[] solution(int brown, int yellow) { int[] answer = {}; for (int yellowWidth = yell.. 2022. 2. 21.
완전탐색 - 소수찾기 해당 문제는 입력 받은 문자열을 각 하나의 문자 조각으로 나누고 각 문자 조합을 전부 만들어 해당 문자조합이 숫자로 파싱했을때 소수인 경우에만 set에 넣어주도록 했습니다. set은 중복이 없으므로 이후 set의 사이즈를 구함으로서 소수의 갯수를 구할 수 있었습니다. public int solution(String numbers) { Set primeNumberSet = new HashSet(); List splitNumberStrings = new ArrayList(); for(int i = 0; i < numbers.length(); i++) { splitNumberStrings.add(numbers.substring(i, i + 1)); } makeOtherNumber(primeNumberSet, .. 2022. 2. 19.
완전탐색 - 모의고사 프로그래머스 (완전탐색) - 모의고사 해당 문제에서는 수포자의 패턴을 확인하여 패턴 배열을 가진 Giver를 생성해 answers 전체를 돌면서 정답수를 counting 해주었고, 이후 정답수 기준의 우선순위 큐에 넣은 후 빼내면서 정답수가 동일할 경우 가장많은 문제를 맞힌 사람의 id를 저장하는 리스트에 넣었습니다. 앞의 동작을 완료 후 정렬하여 primitive type 배열로 변경하여 리턴해주었습니다. 큐에 순서대로 넣기 때문에 마지막에 정렬을 할 필요는 없어 보이기는 하지만 문제대로 여러명일 경우 오름차순 정렬 하라는 요구사항이 있기 때문에 명시적으로 넣어 주도록 하였습니다. public int[] solution(int[] answers) { List firstRankerIds = new Arr.. 2022. 2. 17.
정렬 - H-Index 프로그래머스(정렬) - H-Index 해당 문제를 이해하는것에 시간이 걸렸었는데, h는 n을 절대 넘을수 없고, h의 최대값 또 한 n 이상이 될수 없다는 것을 알 수 있습니다(0 2022. 2. 16.