조합 3

[Python/프로그래머스]후보키_조합

https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 어떻게 푸는지 잘 감이 안왔는데... combinations를 쓰는건가 생각했는데 맞았다. combinations는 반환 값이 튜플이다. 1. combinations를 이용해서 조합을 모두 구한다. 2. 유일성을 만족하는 친구를 찾는다. -> 1번에서 구한 친구들을 이용해 relation값들을 이용해서 튜플을 만들고 그것의 set(중복제거)후의 길이가 relation의 길이와 동일하면 모두 식별할..

[python 구현]DFS에서 꼭 필요한 개념 - 조합 (combination)

N개중에서 r개를 뽑는 경우를 어떻게 구할까? 바로 조합을 이용하면 구할 수 있다. 조합은 중복을 허락하지않고 순서를 생각하지 않는다. n = 4, m = 2 아래 사진이 4까지의 숫자에서 2자리 수를 출력하는 코드의 상태트리이다. D(0,1)에서 처음 시작한다. 0은 level을 1은 start를 의미한다. 출력할 숫자를 담을 배열을 res라고 하자 (크기는 m 만큼이다.) 두번째 인수(start)보다 크거나 같은 수를 res 배열의 level 자리수에 넣어가며 for문을 돌린다. 즉, 위와 같은 경우 res는 0,1 index만 존재하기 때문에 level이 2가 종료 조건이다. 첫번째 인수는 Level이므로 한단계씩 진행됨에 따라 1씩 증가시킨다. 두번재 인수는 res에 들어간 수에서 1을 증가시켜 ..

[삼성SW역량][Python/BOJ] 백준 15686 치킨 배달(DFS)

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 조합을 이용해서 치킨집들의 조합을 구한다. 이 치킨집들과 집들의 각각 치킨거리를 구해 가장 작은 값을 구하면 된다. 코드 : n,m = map(int,input().split()) mp = [list(map(int,input().split())) for i in range (n)] hs = [] ch = [] cb = [0]*m # 조합 # 선택할 치킨집의 인덱스를 담은 배열..