알고리즘
합이 같은 부분집합(DFS : 아마존 인터뷰) - (golang)
합이 같은 부분집합(DFS : 아마존 인터뷰) - (golang)
2022.05.28문제 풀이 해당 문제는 subset(부분집합) 을 만들어서 전체 배열의 원소의 합을 2로 나누었을 때 부분집합 의 합과 똑같으면 YES 다르면 NO 를 출력 하는 방식으로 접근 해보았다. 먼저 부분집합을 만드는 방식에 있어서 해당 원소를 부분집합으로 포함 할지 안할지 이렇게 2진 트리로 재귀호출을 할수 있다. func SameSumSubSet(depth, sum int) { SameSumSubSet(depth+1, sum+array[depth]) SameSumSubSet(depth+1, sum) } depth 와 함께 sum 이라는 변수를 재귀호출 로 넘김으로써 depth 가 N 과 같아졌을때 총합 / 2 와 비교하기 위해서 사용한다. 첫번째 재귀 호출은 해당원소를 부분집합으로 사용하는 재귀호출이고 두번..
programmer level 2 - 위장 (hash map)
programmer level 2 - 위장 (hash map)
2022.02.01https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr Hash map 과 순열 조합을 사용하여 문제를 해결 하였습니다. 예시 예를들어 headgear 가 3개고 eyewear 가 4 개라고 한다면 경우의 수는 headgear 가 총 4가지 eyewear 가 총 5가지 입니다. headgear (0, 1, 2, 3) eyewear (0, 1, 2, 3, 4) 그렇다면 4 * 5 = 20 이라는 값이 나옵니다. 요기서 스파이는 매일 하루에 한벌은 입어야 한다는 가정이 있으므로 모든날 아무것도 입지않는 경우의수 1개를 뺍니다. 20 - 1 = 19 이것을 코드로 구현 해보겠습니다. package io.pr..
java - 임시반장 정하기(배열)
java - 임시반장 정하기(배열)
2021.07.26) import java.util.Scanner; public class AppointingTempLeader { public static int solution(int n, int[][] students) { int answer = 0, max = Integer.MIN_VALUE; for (int i = 1; i