[Algorithm] 백준 영수증 #2587
·
알고리즘/Python
문제출처어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다.평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면10 30 30 40 60이 되고 따라서 중앙값은 30이 된다.다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오.풀이코드numbers = [int(input()) for i i..
[Algorithm] 인프런 점수계산
·
알고리즘/Python
문제출처OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로 하였다. 1번 문제가 맞는 경우에는 1점으로 계산한다. 앞의 문제에 대해서는 답을 틀리다가 답이 맞는 처음 문제는 1점으로 계산한다. 또한, 연속으로 문제의 답이 맞는 경우에서 두 번째 문제는 2점, 세 번째 문제는 3점, ..., K번째 문제는 K점으로 계산한다. 틀린 문제는 0점으로 계산한다.예를 들어, 아래와 같이 10 개의 OX 문제에서 답이 맞은 문제의 경우에는 1로 표시하고, 틀린 경우에는  0으로  표시하였을  때,  점수  계산은  아래  표와  같이  계산되어,  총  점수는 1+1+2+3+1..
[Algorithm] 인프런 주사위게임
·
알고리즘/Python
문제출처규칙(1) 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 규칙(2) 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다. 규칙(3) 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다. N 명이 주사위 게임에 참여하였을 때, 가장 많은 상금을 받은 사람의 상금을 출력하는 프로그램 을 작성하시오풀이코드import sysN = int(input())# 상금 초기화res =0for i in range(N): tmp = input().split() #가장 큰 숫자 찾기 tmp.sort() a,b,c = map(int, tmp) # 같은 눈이 3개 if a == b a..
[Algorithm] 인프런 뒤집은 소수
·
알고리즘/Python
문제출처N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다.뒤집는 함수인 def reverse(x) 와 소수인지를 확인하는 함수 def isPrime(x)를 반드시 작성하여 프로그래밍 한다풀이코드N = int(input())a = list(map(int,input().split()))def reverse(x): return int(str(x)[::-1])def isprime(x): if x == 1: return False for i in range(2, x..
[Algorithm] 프로그래머스 추억점수
·
알고리즘/Python
문제출처그리워하는 사람의 이름을 담은 문자열 배열 name, 각 사람별 그리움 점수를 담은 정수 배열 yearning, 각 사진에 찍힌 인물의 이름을 담은 이차원 문자열 배열 photo가 매개변수로 주어질 때, 사진들의 추억 점수를 photo에 주어진 순서대로 배열에 담아 return하는 solution 함수를 완성해주세요.풀이코드def solution(name, yearning, photo): answer = [] dic = dict(zip(name, yearning)) for i in photo: score = 0 for j in i: score += dic.get(j, 0) answer.append(score) retur..
[Algorithm] 인프런 소수의 개수 구하기
·
알고리즘/Python
문제출처자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력하는 프로그램을 작성하세요. 만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개입니다.풀이코드def prime(x): for i in range(2, x): if (x % i == 0): return False return Truen = int(input())cnt = 0for x in range(2, n+1): if prime(x): cnt += 1print(cnt)코드설명1. 소수는 1과 자기 자신 이외의 어떤 양의 정수로도 나누어 떨어지지 않는 자연수2. 1은 소수가 아니기 때문에 2부터 시작3. 어떤 숫자로도 나누어 떨어진..
[Algorithm] 인프런 자릿수의 합
·
알고리즘/Python
문제 출처N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요풀이코드n = int(input())a = list(map(int, input().split()))def digit_sum(x): sum = 0 while x>0: sum += x%10 x = x//10 return summax = 0for x in a: tot = digit_sum(x) if tot > max: max = tot res = xprint(res)코드설명sum에 몫이 아닌 나머지로 넣어..
[Algorithm] 인프런 정다면체
·
알고리즘/Python
문제 출처두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서나올 수 있는 눈의 합 중 가장 확률이 높은 숫자를 출력하는 프로그램을 작성하세요.정답이 여러 개일 경우 오름차순으로 출력합니다풀이 코드n, m = map(int, input().split())cnt = [0]*100for i in range(1, n+1): for j in range(1, m+1): cnt[i+j]+=1max = 0for a, b in enumerate(cnt): if b > max: max = bfor a, b in enumerate(cnt): if max == cnt[a]: print(a, end=' ')코드 설명cnt를 리스트로 만듬i와 j 주사위 조합으로 눈의 ..