일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- kick start
- 킥스타트
- nlp
- 프로그래머스
- CSS
- 프로그래밍
- 백준
- dp
- 파이썬
- 동적 프로그래밍
- 순열
- 코딩 테스트
- 코딩테스트
- 네트워크
- 알고리즘
- 동적프로그래밍
- DFS
- OS
- 리눅스
- 운영체제
- 그래프
- PYTHON
- 코딩
- 브루트포스
- google coding competition
- linux
- 구글 킥스타트
- 딥러닝
- AI
- BFS
- Today
- Total
목록백준 (77)
오뚝이개발자
문제 https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 생각의 흐름 N과 M (9)와 유사하지만 조합을 구한다는 점이 다르다. 코드 from itertools import combinations N,M = map(int, input().split()) arr = list(map(int, input().split())) arr.sort() result = [] result = set(result) for case in combinati..
문제 https://www.acmicpc.net/problem/15663 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 생각의 흐름 좀 많이 헤멨던 문제이다...에러 원인을 찾지 못해서... 일단 문제를 분석해보자면 리스트의 원소들을 입력으로 받아 순열을 구하는 문제인데 까다로운 부분은 원소 중에 중복되는 것들이 있다는 점이다. 다시 말해 [1,9,3,9]과 같은 리스트인데 순열을 구할 때 두 개의 9를 서로 다른 원소로 생각해 (9,9)가 두 번 나오게 되는 경우가 발생한다. 이를 해결해야 한다...
문제 https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. www.acmicpc.net 생각의 흐름 N과 M (7) 문제와 유사하나 순열이 아닌 조합을 구하는 문제 코드 from itertools import combinations_with_replacement N,M = map(int, inpu..
문제 https://www.acmicpc.net/problem/15656 15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. www.acmicpc.net 생각의 흐름 중복선택을 허락하는 순열이지만 리스트의 원소들을 입력으로 받는다는 점이 이전 문제와의 차이점 코드 from itertools import product N,M = map(int, input().split()) arr = list(map(int, input().split())) arr.sort() for case in product(arr..
문제 https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 고른 수열은 오름차순이어야 한다. www.acmicpc.net 생각의 흐름 N과 M (5)와 유사하나 조합이라는 점! 코드 from itertools import combinations N,M = map(int, input().split()) arr = list(map(int, input().split())) arr.sort() for case in combinations(arr, M): print(' '.jo..
문제 https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 생각의 흐름 이전의 수열문제와 크게 다른 것은 없고 그저 리스트의 원소들을 입력으로 받는다는 부분이 다르다. 코드 from itertools import permutations N,M = map(int, input().split()) arr = list(map(int, input().split())) arr.sort() for case in permutations(arr, M): p..
문제 https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 생각의 흐름 이전에 포스팅 했던 N과 M (3)과 비교했을 때 중복선택을 허락하는 것은 동일하지만 순열이 아닌 조합이라는 점이 다르다. 깨달은 점 파이썬 itertools에는 이를 지원하는, 즉 중복선택을 허락하는 조합을 구하는 combinations_with_replacement라는 함수가 있다. 코드 from itertools import combinations_with_rep..
문제 https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 생각의 흐름 중복선택이 가능하다는 점을 유념해야 한다. 깨달은 점 파이썬 itertools에 product라는 함수가 있다. product(arr, repeat=M)과 같이 첫번째 인자는 리스트, 두번째 인자는 반복 횟수이다. 예컨대, arr = [1,2,3], M=2라면 (1,1)과 같이 두 개를 뽑는데 중복해서 뽑는 경우를 포함한다. 코드 from itertools import..