문제 풀이/Algorithm
-
[Programmers] 쿼드 압축 후 개수 세기문제 풀이/Algorithm 2021. 5. 16. 16:52
출처: 프로그래머스 - 쿼드 압축 후 개수 세기 언어: JAVA 1. 풀이 과정 문제를 요리보고 저리봐도 이건 재귀함수 문제다! (반복적으로 계속 압축하고 있기 때문) ☝ 2차원 배열의 모든 수가 같은지 확인 ✌ 다를 시, 영역을 1/4로 나누기! 다를 시, 해당 숫자 카운트++ 위의 과정을 배열의 길이 가 1이 될 때까지 반복하면 총 0과 1의 개수가 세어진다. 2차원 배열의 모든 수가 같은지 확인할 땐, 기준값(비교하려는 영역의 첫번째 값. 즉 첫번째 재귀 값에서는 arr[0][0])과 다른 값 존재 시 바로 영역 나누기(✌번째 과정)으로 넘어간다. 그러나 다른 값이 없는 경우 해당 숫자의 카운트를 증가시키고 재귀를 끝낸다. 그리고 영역을 나눌 땐 4개의 영역으로 나누기 때문에 4개의 재귀함수를 호출..
-
[Programmers] Hash - 위장문제 풀이/Algorithm 2020. 7. 8. 10:42
출처: 프로그래머스 - 위장 언어: JAVA 1. 풀이 과정 이 문제는 스파이가 갖고있는 의상의 종류마다 갯수를 구해서 경우의 수를 구하면 된다. 종류의 갯수는 HashMap을 이용하여 카운트 할 수 있다. 2. 주요 코드 import java.util.*; class Solution { public int solution(String[][] clothes) { HashMap spy = new HashMap(); int answer = 1; for (int i = 0; i < clothes.length; i++) { if (spy.containsKey(clothes[i][1])) { spy.put(clothes[i][1], spy.get(clothes[i][1]) + 1); } else { spy.put..
-
[Programmers] Hash - 전화번호 목록문제 풀이/Algorithm 2020. 7. 8. 10:18
출처: 프로그래머스 - 전화번호 목록 언어: JAVA 1. 풀이 과정 phone_book 배열에서 첫 번째부터 순서대로 pre로 정하여 배열 안의 pre를 제외한 다른 값들과 각각 비교한다. 두 값을 비교할 때, pre가 다른 값으로 시작하는지 알아보기 위하여 startsWith()라는 메소드를 이용했다. ( startsWith()를 몰랐다면 코드의 줄이 더 많았을 것이다… ) 2. 주요 코드 import java.util.*; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; String pre = "", post = ""; for(int i = 0; i < phone_book.length; i++..
-
[Programmers] Hash - 완주하지 못한 선수문제 풀이/Algorithm 2020. 7. 8. 09:52
출처: 프로그래머스 - 완주하지 못한 선수 언어: JAVA 1. 풀이 과정 이 문제는 참여자 명단과 완주자 명단을 정렬하여 두 명단의 같은 index의 값을 비교하여 해결할 수 있다. 만약 참여자 명단에 있는 모든 사람이 완주자 명단에도 있다면?? 배열을 정렬했을 때, 두 배열은 완벽히 같을 것이다. (같은 index의 값이 모두 같다!) 따라서 같은 index의 값만 비교해 준다면 누가 완주하지 못했는지 알 수 있다! 참여자 명단 0 1 2 "eden" "kiki" "leo" 완주자 명단 0 1 "eden" "kiki" 위의 두 표는 첫 번째 입출력 예의 참여자 명단과 완주자 명단을 정렬한 결과다(index와 값). 얼핏 봐도 index 0 과 index 1 의 값은 두 배열이 같은데 index 2 의..