전체 글

전체 글

    [Python] 백준(BOJ) 9663번 N-Queen(백트래킹)

    9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N < 15) 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 예제 입력 1 8 예제 출력 1 92 코드 n = int(input()) arr = [0] * n cnt = 0 def det(num): # 검증 함수 for v in ..

    [Python] 중복순열, 중복조합(itertools.product, combinations_with_replacement)

    import itertools alphabet = [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;] # 문자열이나 range로도 가능 print([*itertools.product(alphabet, alphabet)]) # 2개의 원소로 중복순열 print([*itertools.product(alphabet, repeat=3)]) # 3개의 원소로 중복순열 print() print([*itertools.combinations_with_replacement(alphabet, 2)]) # 2개의 원소로 중복조합 출력값 [(&#39;A&#39;, &#39;A&#39;), (&#39;A&#39;, &#39;B&#39;), (&#39;A&#39;, &#39;C&#39;), (&#39;B&#3..

    [Python] collections.Counter

    import collections li = [1, 2, 3, 4, 5, 6, 7, 8, 7, 9, 1, 3, 5, 7, 9, 1, 5, 9, 0, 1, 10, 100, 10, 1] cnt = collections.Counter(li) print(cnt[1]) # 1의 개수: 5 print(cnt[2]) # 2의 개수: 1 print(cnt[3]) # 3의 개수: 2 print(cnt[5]) # 5의 개수: 3 print(cnt[10]) # 10의 개수: 2 print(cnt[100]) # 100의 개수: 1 출력값 5 1 2 3 2 1

    [Python] 순열, 조합(itertools.permutations, combinations)

    import itertools alphabet = ['A', 'B', 'C'] # 문자열이나 range로도 가능 print([*itertools.permutations(alphabet)]) # 3개의 원소로 순열 print([*itertools.permutations(alphabet, 2)]) # 2개의 원소로 순열 print() print([*itertools.combinations(alphabet, 2)]) # 2개의 원소로 조합 출력값 [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')] [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'..

    [Python] 백준(BOJ) 10989번 수 정렬하기 3 (계수 정렬)

    문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 10 5 2 3 1 4 2 3 5 1 7 예제 출력 1 1 1 2 2 3 3 4 5 5 7 코드 import sys input = sys.stdin.readline print = sys.stdout.write arr = [0]*10000 for i in range(int(input())): # 1~10000까지 각 숫자의 개수 구하기 arr[int(input..

    [Python] 누적합 itertools.accumulate

    from itertools import accumulate li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ac = list(accumulate(li)) print(li) print(ac) 출력값 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 3, 6, 10, 15, 21, 28, 36, 45, 55]

    [Python] 힙 자료구조 Heapqueue

    가장 작은 값이 항상 앞에 오는 자료구조 - 최대값, 최솟값을 빠르게 찾아내기 위해 고안되었다 import heapq heap = [] heapq.heappush(heap, 5) # heap = [ 5 ] heapq.heappush(heap, 1) # heap = [ 1, 5 ] heapq.heappush(heap, 2) # heap = [ 1, 5, 2 ] heapq.heappop(heap) # heap = [ 2, 5 ] print(heap) 출력값 [2, 5] heap = [ 5, 1, 2 ] heapq.heapify(heap) # heap = [ 1, 5, 2 ] print(heap) 출력값 [1, 5, 2]

    [Python] 프로그래머스 124 나라의 숫자

    124 나라의 숫자 문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. 제한사항 n은 500,000,000이하의 자연수 입니다. 입출력 예 n result 1 1 2 2 3 4 4 11 풀이 굳이 이..