본문 바로가기
[알고리즘] 기본 알고리즘 과제 아래의 글을 참고하여 JUPYTER 노트북에서 바로 옮겨서 적용해봤다. jfun.tistory.com/42 Jupyter Notebook에서 처리한 작업을 Tistory로 손쉽게 가져오기 주피터 노트북에서 작업한 내용을 깔끔하게 티스토리에 정리하는 노하우를 공개하겠다. (1) 주피터 노트북에서 File 탭에서 Print Preview를 누른다. (2) 새로운 창이 열리면서 주피터에서 작업한 내 jfun.tistory.com ASSIGNMENT !¶ HYEONGGU LIM (2021311558)¶ 1. Guessing Game¶ In [4]: import random # importing random module how_many = 0 while(True): guess_num = input() #assum.. 2021. 3. 22.
[백준][파이썬] 1182 부분수열의 합 핵심 1. visited 사용할때 not in stack 이 두개의 차이는 중복된 숫자를 체크 가능한지 여부이다. 2. depth를 다르게 줘야할때는 함수 밖에서 depth를 다르게 설정해서 줄 수 있다. N, S = map(int, input().split()) lit = list(map(int, input().split())) count = 0 visited = [False] * N def per(idx, depth, stack, max): global count if depth == max: total = 0 for sum in stack: total += sum if total == S: count += 1 for i in range(idx, N): if visited[i] ==False: vis.. 2021. 1. 18.
[백준][파이썬] 6603 로또 6603번 제출 맞은 사람 숏코딩 재채점 채점 현황 내 제출 난이도 기여 강의 질문 검색 로또 성공출처다국어분류 한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 128 MB 28282 15492 10423 53.921% 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21],.. 2021. 1. 15.
[백준][파이썬] 14889 스타트와 링크 # 팀을 나눈다 n/2명씩 # 1. 재귀 함수를 통해서 팀 조합 생성 # 2. 능력치를 더해주는 함수를 통해서 능력치 생성 # 3. 비교 및 최소값 구하기 import sys num = int(sys.stdin.readline()) power = [list(map(int, input().split())) for _ in range(num)] p = int(num/2) #팀원 수 check = [False] * num mn = 10**9 def sum_power(s): t1 = 0 t2 = 0 for i in range(num): for j in range(i,num): if i != j and s[i] == s[j] and s[i] == True: t1 += power[i][j] t1 += power[j.. 2021. 1. 13.
[백준][파이썬] 1339번: 단어수학 단어 수학 분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 2 초 256 MB 10105 4225 3138 42.764% 문제 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다. 예를 들어, GCF + ACDEB를 계산한다고 할 때, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다면, 두 수의 합은 99437이 되어서 최대가 될 것이다. N개의 단어가 주어졌을.. 2021. 1. 9.
[백준][파이썬] 2529번 부등호 부등호 성공출처분류 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 256 MB 10238 5175 3618 49.024% 문제 두 종류의 부등호 기호 ‘’가 k개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시된 부등호 순서열 A가 다음과 같다고 하자. A => 부등호 기호 앞뒤에 넣을 수 있는 숫자는 0부터 9까지의 정수이며 선택된 숫자는 모두 달라야 한다. 아래는 부등호 순서열 A를 만족시키는 한 예이다. 3 1 7 0 이 상황에서 부등호 기호를 제거한 뒤, 숫자를 모두 붙이면 하나의 수를 만들 수 있는데 이.. 2021. 1. 9.
[백준][파이썬] 14425 부분수열의 합(2) [핵심] 1. 부분수열의 합(1) 과 같이 수열을 재귀함수를 통해서 생성한다 2. check라는 boolean형 리스트를 만들어주고, SUM(수열) 을 통해서 해당 숫자를 True로 설정한다 3. False(즉 나오지 않은 수열의 합) 중 가장 작은 수를 출력하다 시간이나 메모리가 괜찮으려면? 모두 저장할 필요는 없고, sum(수열)이 기존의 수보다 크다면 저장안하고 버려도 된다. n = int(input()) numlist = list(map(int,input().split(" "))) numlist.sort() visited = [False for i in range(n)] check = [1] + [0 for j in range(2000000)] def recu(limit,cnt,lit,space,.. 2020. 9. 26.
[백준][파이썬] 11053 가장 긴 증가하는 부분 수열 아래의 블로그를 참고했다. 앞에있는 숫자중 나보다 작은 수들중 길이가 최고인것의 +1 ... num = int(input()) numlist = list(map(int,input().split())) dp = [0 for i in range(num)] for i in range(num): for j in range(i): if numlist[i] > numlist[j] and dp[i] 2020. 8. 3.
[백준][파이썬] 11057 오르막 수 쉬운 계단 수 문제와 거의 동일한 문제다. N = int(input()) #각 수마다 10개씩 값을 갖는다 dp = [[0 for i in range(10)] for j in range(1001)] #첫 시행 초기화 for i in range(0,10): dp[1][i] = 1 #점화식 규칙 for i in range(2,N+1): for j in range(10): tmp = 0 for k in range(j+1): tmp += dp[i-1][k] dp[i][j] = tmp print(sum(dp[N]) % 10007) 2020. 7. 28.