inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

완전탐색 (For반복문)

우선 1090 모이기 문제를 완전 탐색으로 해보려고 하는데...

해결된 질문

401

현자타임

작성한 질문수 25

1

N=4 일 때 좌표 4개가 주어지고 1명, 2명, 3명, 4명 모였을 때의 경우의 수를 비교해야할 것 같은데

1명 모였을때 경우의 수, 2명 모였을 때 경우의 수, 3명 모였을 때 경우의 수, 4명 모였을 때 경우의 수를

어떻게 그 좌표 조합을 만들 수 있는지 고민입니다.

1명 모였을 때는 단일 반복문, 2명일 때 2중 반복문, 3명일 때 3중 반복문이 필요할 것 같은데... 이게 N개면 N개의 반복문을 만드는게 맞나 싶어서요.. ㅠ

python 코딩-테스트 알고리즘

답변 2

0

코딩 센세

고민해보시고 우측 상단에 수업 자료를 보시면 제 코드 정답이 있습니다!

저도 처음에 많이 고민했던 부분이니 충분히 고민해보시고 여러 방법을 시도해보신 뒤에 정답을 보면 바로 이해가 되실거에요! :)

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

님께서 질문하신 문제는 조합을 이용하여 해결할 수 있습니다. N개 중에 k개를 선택하는 모든 경우의 수를 구하는 것이기 때문에, 조합(Combination)을 활용하면 됩니다.

Python에서는 itertools 모듈의 combinations 함수를 사용하여 쉽게 구할 수 있습니다. 예를 들어, N=4일 때 각 경우의 수를 구하는 코드는 다음과 같습니다.

from itertools import combinations

points = [(x1, y1), (x2, y2), (x3, y3), (x4, y4)]  # 각 좌표를 튜플로 나타낸 리스트
N = 4

for r in range(1, N + 1):
    for combo in combinations(points, r):
        print(combo)

이 코드는 1명부터 N명까지 모였을 때의 모든 좌표 조합을 출력합니다. combinations 함수에 첫 번째 인자로는 조합을 만들 대상 리스트를, 두 번째 인자로는 조합의 길이를 전달합니다.

이 방법을 사용하면 N개의 반복문을 사용하지 않고도 원하는 모든 경우의 수를 구할 수 있습니다.

dp[x]가 최대값이라고 확신할수 있는 이유

0

46

1

1090번 문제 질문

0

151

1

유니온파인드

0

112

1

투포인터 25:15 질문

1

129

1

#1090번 문제 반례가 궁금합니다.

0

148

1

예제코드 자바입니다

1

187

1

정수론 파트 #2247 문제에 대한 질문입니다!

0

102

0

코드 오류

0

186

1

2강 정수론 문제3 #1407 질문

0

127

0

이차원 배열 (int형)dp로 0 혹은 -1로 체크하는 방법 말고 boolean형 배열로 체크해서 바로 리턴해줄 수 없나요?

0

154

0

1717번 최적화

0

112

0

백준 22988 문제 질문

1

193

2

[Python] 백준 1090번 문제

1

226

3

강의자료에서

1

162

2

2503 문제 제한 조건 질문!

1

249

2

백준 22988 번 문제

1

193

1

추가 강의 순서

1

181

2

(*문제 풀이)1090 테스트케이스 1번 C++

1

221

2

7강 RGB 색칠하기 질문 있습니다.

1

161

2

정수론 약수 빠르게 구하기 질문

1

257

1

1090 문제의 2, 3번째 아이디어는 결국 같은거 아닌가요?

1

375

2

1090 문제 관련하여 맨해튼 거리 최솟값에 대해 질문 있습니다.

1

223

2

누적합 문제 3번 질문

1

216

2

기억 ( 누적합 ) 강의 11660 문제

1

163

2