# permutations

34개의 포스트
post-thumbnail

[코테] 탐색 - 피로도[프로그래머스]

문제 출처: 프로그래머스 - 피로도 >### 풀이 주어진 던전들의 모든 순서들을 나열하는 경우의 수인 수열을 모두 구한 뒤, 수열을 처음부터 탐색하며 던전을 돌 수 있는 수를 세고 그 중 가장 큰 수를 반환하면 된다. 던전의 순서는 임의로 입장가능하며 입장 순서에 따라서 클리어가 가능한 던전의 개수가 달라지기 때문에 모든 던전의 순서들의 경우의 수를 itertools의 permutations(순열)을 통해

2023년 6월 10일
·
0개의 댓글
·
post-thumbnail

[코테] 순열 - 줄 서는 방법[프로그래머스]

문제: 출처: 프로그래머스 - 줄 서는 방법 : https://school.programmers.co.kr/learn/courses/30/lessons/12936#qna >## 풀이: 1. itertools의 permutations 1번과 같이 풀이를 진행할 시 모든 순열을 모두 확인하며 진행하기에 시간 초과가 난다. n가지의 순열을 구하는 경우의 수는 n!, 즉 (factorial:순열의 경우의 수)는 'n! = n × (n-1) × (n-2) ×....3 × 2 × 1'으로써 길이가 20이라면 다음과 같은 경우의 수를 가진다. 그렇기에 k번재의 자릿수를

2023년 5월 14일
·
0개의 댓글
·
post-thumbnail

월간 코드 챌린지 시즌 1

내적 3진법 뒤집기 두 개 뽑아서 더하기

2023년 3월 22일
·
0개의 댓글
·
post-thumbnail

[백준] 연산자 끼워넣기

문제 설명 원래 문제 설명은 따로 안 적고 바로 풀이를 기록했지만 ... 간혹가다 문제 이해가 안 간 사람들이 있을 수도 있을 것 같아서 앞으로 추가하려고 한다. 나도 가끔 문제 이해가 안 되는 것들이 있어서 ㅎㅎ 역지사지! 이 문제는 주어진 숫자 리스트에서 연산자를 끼워넣는 문제이다. 예를 들어, 숫자 = [1,2,3,4,5] , 연산자 = [+,-,*,/] 라면 "1+2-3*4/5"와 같은 수식이 나올 것이다. 이 때, 숫자는 순서를 바꿀 수 없지만 연산자는 순서를 바꿀 수 있다. 따라서 위 수식 말고 "1-2+3*4/5" 이렇게 표현할 수도 있고 .. "1*2/3+4-5" 이렇게 표현할 수도 있다. 다양한 경우의 수가 존재하는데 이 모든 경우의 수에서 연산값이 제일 큰 값과 작은 값을

2023년 3월 12일
·
0개의 댓글
·
post-thumbnail

[Python] 피로도 - 완전탐색

Level 2 문제 해당 문제 링크 정답 풀이 처음에는 파이썬 라이브러리 중 순열 함수를 사용해서 했지만, 그 이후 튜플()에 들어있고, 이를 어떻게 꺼내써야하나 이것저것 코드 작성하다가 결국 DFS, BFS 까지 구현하려고 하는데 아무래도 그럴 필요는 없을 것 같아서 다시 순열을 사용하였다. 헷갈리는 부분이 있어 코드를 조금 참고하여 해결했다. 분명 쉬운 문제니까.. 꼭 이런 문제들을 풀 수 있어야 했다!! 더더 공부하고자 한다!

2023년 2월 23일
·
0개의 댓글
·

Python 알고리즘에 필요한 문법 총 정리

순열 > [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')] 조합 > [('A', 'B'), ('A', 'C'), ('B', 'C')] zip lst1과 lst2 각각을 짝지은 zip 객체가 반환됨. list나 dictionary 등 자료구조를 이용하여 표현 가능 Ex) > [(0, '월'), (1, '화'), (2, '수'), (3, '목'), (4, '금'), (5, '토'), (6, '일')] Find max value's key in Dictionary 딕셔너리에서 밸류의 최대값을 갖는 키를 찾는 방법이다. 말이 어려울 수 있는데, 예를 들어 `{'A': 3,'B': 5,

2023년 2월 14일
·
0개의 댓글
·
post-thumbnail

[Python] 소수 찾기 - 완전 탐색

문제 해당 문제 링크 풀이 Git - 소스 코드 결과 해석 코드 정리 문제 접근이나 푸는 건 어렵지 않았지만, 쓰는 문

2023년 2월 13일
·
0개의 댓글
·

[Lv.2][완전탐색] 소수찾기

문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42839 첫 코드 코드 분석 > 💡 permutations 순열은 순서를 고려하여 나열한 경우의 수! example [A, B, C]의 리스트에서 2개의 원소를 골라 순서를 정해 나열하면 [(A, B), (A, C), (B, A), (B, C), (C, A), (C, B)] 가 나오게 된다! (A,B)와 (B,A)는 순서가 다르기 때문에 다른걸로 취급한다 > 💡 sum(list1,[]) 이차원 리스트를

2023년 2월 9일
·
0개의 댓글
·

2/3 (Fri): 파이썬 프로그래밍 FAQ, 코테 알고리즘 공부

Python 프로그래밍 FAQ parameters & arguments Parameters(매개변수) are defined by the names that appear in a function definition (함수 내) Arguments(인자) are the values actually passed to a function when calling it (함수 사용시) 인자와 매개변수의 차이점은 무엇입니까? list & int 복사 list 와 같은 가변객체를 복사: 사본생성이 아닌 같은 객체를 참조. int 와 같은 불변객체를 복사: 새로운 객체가 생성되어 반환. [리스트 y를 변경할 때 리스트 x도 변경되는 이유는 무엇입니까?](https://d

2023년 2월 3일
·
0개의 댓글
·
post-thumbnail

[Python] 모든 순열 - 순열

해당 문제 링크 풀이 Git - 코드 해석 처음 문제를 풀면서 난관에 봉착했다.. 처음 썼던 코드는 아래와 같다. 하지만 이 코드는 입력을 3으로 할 때만 나온다는 것이다... 왜냐하면 print(res[i], res[i+1], res[i+2])로 아예 지정을 했기 때문.. 사실 코드를 작성하면서 정답에 점점 멀어져가고 있단 것은 알았지만 그래도 혹시 모르니 계속 해봐서 나온 결과 코드이다. 그리해서 다른 사람의 풀이를 참고하여 코드를 작성해보았다. [참고 코드 출처](ht

2023년 1월 28일
·
0개의 댓글
·

프로그래머스 - 옹알이(1)

1. 문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 2. 제한 사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다. 문자열은 알파벳 소문자로만 이루어져 있습니다. 3. 입출력 예 ![](https://velog.velcdn.com/images/hdj0829/post/131

2023년 1월 2일
·
0개의 댓글
·

프로그래머스 - 옹알이(1)

1. 문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 2. 제한 사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다. 문자열은 알파벳 소문자로만 이루어져 있습니다. 3. 입출력 예 ["aya", "yee", "u", "maa", "wyeoo"] 1 ["ayaye", "uuu

2023년 1월 2일
·
0개의 댓글
·
post-thumbnail

리트코드_46, 77_permutations와 combinations_Medium (itertools 안쓰고 직접 구현 방법_deepcopy (뼈대 매우 중요))

결론부터 작성 코테에선 itertools를 사용하고 + 주석에 "구현의 효율성, 성능을 위해 사용했다" 는 내용을 달면 금상첨화 라이브코딩에선 직접 구현해봐라 시킬 수 있다. 삼성코테에서 itertools를 사용할 수 없다는 썰이 있다. Combinations(리스트, 넘버) - 그리고 이 코드는 이해가 쉽게 하려고 dfs를 비효율적으로 작성한거(조합만) 다음에 효율좋은 제대로된 코드로 추가 정리하고 그걸 외우자 Permutations(리스트, 넘버) dfs 기반 if 리프 노드일 때 결과 추가 순열 생성 재귀 호출 (루트->인터널 이동하며 path기록) 앞에서부터 슬라이싱하여 모든 경우의 수에 대한 dfs deepcopy를 이용해 복사 중요 e에 대해 한번씩 다 빼볼거기 때문에 remove사용 ([2,3], [1,3],

2022년 10월 5일
·
0개의 댓글
·

permutations(조합)

nPr 서로 다른 n개중 r개를 순서는 있고, 중복은 없이 뽑는 경우 itertools사용 직접 구현

2022년 9월 18일
·
0개의 댓글
·

[python] itertools 라이브러리

효율적인 루핑을 위한 이터레이터를 만드는 함수 1. permutations() - 순열 permutations(iterable, r=None) 입력 iterable에서 요소의 연속된 길이 r 순열(모든 가능한 순서, 반복되는 요소 없음)을 반환 r이 지정되지 않거나 None이면, r의 기본값은 iterable의 길이 2. combinations() - 조합 combinations(iterable, r) 입력 iterable에서 요소의 길이 r 서브 시퀀스들을 반환(정렬된 순서, 반복되는 요소 없음) 조합(combination) 튜플은 입력 iterable의 순서에 따라 사전식 순서로 방출 3. product() - 곱셈 product(*iterables, repeat=1) 입력 이터러블들(iterables)의 데카르트 곱(제너레이터 표현식에서의 중첩된 for-루프와 동등) 이터러블의 자신과의 곱을 계산하려면, 선택적 repeat 키워드 인자를 사용하여 반복 횟

2022년 9월 1일
·
0개의 댓글
·
post-thumbnail

백준_14888 (연산자 끼워넣기_실버1_브루트포스_permutations) 호석 완전탐색2

링크 : https://www.acmicpc.net/problem/14888 메모 숫자 순서를 바구면 안된다 연산자 우선순위는 없다. 왼쪽부터 진행 나눗셈은 몫만 취하고, 수가 음수일 경우 양수로 바꾼 후 나누기한 다음 음수로?? -->파이썬 상관없을듯 입력 : length, 숫자배열 결론 : 만들 수 있는 식의 결과가 최대인 것과 최소인 것을 구하는 풀이!! 기호 수를 입력받았기 때문에, 각 기호에 해당하는 그 수만큼 operator 배열에 저장해둔다 operator의 개수만큼 저장했

2022년 8월 12일
·
0개의 댓글
·

[프로그래머스] 피로도 (파이썬)

피로도 문제 링크 문제설명 > XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다. > 이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘 이 던전들을 최대한 많이 탐험하려 합

2022년 7월 11일
·
0개의 댓글
·
post-thumbnail

백준_10974 (모든 순열_실버3_기본문제)

링크 : https://www.acmicpc.net/problem/10974 기본적인 문제 5분컷

2022년 7월 3일
·
0개의 댓글
·
post-thumbnail

백준_10972 (다음 순열_실버3_itertools 사용 x_다시)

itertools 사용 x 링크 : https://www.acmicpc.net/problem/10972 1차 풀어본 - 메모리 초과일 것 같음 itertools로 모든 경우의 수 다 구해서 하는 방법인데 보나마나 메모리 초과일 거라 테스팅은 안함 ![](https://velog.velcdn.com/images/taehyeon96

2022년 7월 2일
·
0개의 댓글
·
post-thumbnail

NHN_백준_15649 (N과 M (1, 2) itertools_permutations_combinations)

주의할 사항 itertools 다!! collections가 아니고! 콤비네이션, 퍼뮤테이션 -> iter가 가능한 리스트에 대해 쓰기 때문에 itertools 콤비네이션은 중복 제거 퍼뮤테이션은 중복 X 전부 모두 사용법 알아내는 방법은 help(함수명) dir() 주의 itertools permutations 사용법 링크 : https://www.acmicpc.net/problem/15649 ![](https://velog.velcdn.com/images/taehyeo

2022년 5월 28일
·
0개의 댓글
·