Algorithm Study/Python

    [백준 파이썬] # 2231 분해합

    Bronze II # 2231 분해합 브루트 포스 링크 : https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 풀이 N = int(input()) li = [] # 출력값이 N보다는 작은 값이라는 가정하에 모든 경우의 수 확인 for i in range(N): s = 0 # for문이 돌 때마다 s를 갱신해야 함 s += i for j in str(i): s += int(j) if s == N: li.append(i) ..

    [백준 파이썬] # 2798 블랙잭

    Bronze II # 2798 블랙잭 브루트 포스 링크 : https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 풀이 N, M = map(int, input().split()) cards = list(map(int, input().split())) sum_list = [] for i in range(N): for j in range(i+1, N): for k in range(j+1, N): if cards[i]+car..

    [코드업 파이썬] # 4012 석차 계산

    구조체 연습 # 4012 석차 계산 링크 : https://codeup.kr/problem.php?id=4012&rid=0 석차 계산 [문제 2] 정렬되지 않은 학생들의 임의의 점수를 입력하여 석차를 계산하는 프로그램을 작성하시오. 점수는 동점이 있을 수 있으며, 이러한 경우 같은 석차로 처리한다. 예를 들어 5명의 점수 100, codeup.kr 풀이 n = int(input()) scores = list(map(int, input().split())) result = [] for i in range(n): rank = 1 for j in range(n): if scores[i] < scores[j]: rank += 1 result.append(rank) for i in range(n): print(s..

    [코드업 파이썬] # 3120 리모컨

    코드업 그리디 문제 # 3120 리모컨 링크 : https://codeup.kr/problem.php?id=3120&rid=0 리모컨 현재 온도a 와 목표 온도b가 입력된다. ( 0

    [코드업 파이썬] # 3170 기억력 테스트 9

    구조체 연습 # 3170 기억력 테스트 9 링크 : https://codeup.kr/problem.php?id=3170 기억력 테스트 9 첫째 줄에 $N$과 $M$이 입력된다.($1

    [코드업 파이썬] # 3019 스케줄 정리

    구조체 연습 # 3019 스케줄 정리 링크 : https://codeup.kr/problem.php?id=3019&rid=0 스케줄 정리 5 sleep 2014 05 23 golf 2014 06 02 travel 2015 11 22 baseball 2013 02 01 study 2014 05 23 codeup.kr 풀이 N = int(input()) li = [list(input().split()) for i in range(N)] li = sorted(li, key = lambda a : (int(a[1]), int(a[2]), int(a[3]), a[0])) for i in li: print(i[0]) lambda로 정렬할 때 데이터 형식(str 인지 int 인지)을 확인해야 한다 lambda 이후에..

    [코드업 파이썬] # 3015 성적표 출력

    구조체 연습 # 3015 성적표 출력 링크 : https://codeup.kr/problem.php?id=3015&rid=0 성적표 출력 첫째 줄에 데이터의 개수 $n$ ($3

    [백준 파이썬] # 1541 잃어버린 괄호

    Silver II # 1541 잃어버린 괄호 그리디 알고리즘 링크 : https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 풀이 a = input().split('-') # '-' 기준으로 분리 li = [] for i in a: cnt = 0 i = i.split('+') # 각 i를 '+' 기준으로 분리 for j in i: cnt += int(j) # 계산을 위해 숫자형으로 바꿔야 함 li.append(cnt) n = li[0] for i..

    [백준 파이썬] # 1931 회의실 배정

    Siver II # 1931 회의실 배정 그리디 알고리즘 유형 링크 : https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 풀이 N = int(input()) time = [] for i in range(N): start, end = map(int, input().split()) time.append([start, end]) time = sorted(time, key = lambda a : a[0]) # start 기준으로 오름차순 정렬 time = sorted(time, key = lambda a : a[1]) # end 기준으로 오름차순 정렬 ## 오름차순 정..

    [백준 파이썬] # 11047 동전 0

    Silver II # 11047 동전 0 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 풀이 N, K = map(int, input().split()) count = 0 coin = [] for i in range(N): A = int(input()) coin.append(A) coin = sorted(coin, reverse=True) for i in coin: count +=..