파이썬 기초

전.py / / 2021. 1. 13. 22:11
728x90

# 백준 1977 완전제곱수

https://www.acmicpc.net/problem/1977

 

1977번: 완전제곱수

M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완

www.acmicpc.net

m = int(input())
n = int(input())
hap = 0
first = 0
for i in range(m, n+1):
    if i**0.5 == int(i**0.5):
        hap += i
        if first == 0:
            first = i
if hap == 0:
    print(-1)
else:
    print(hap)
    print(first)

 

# 백준 11098 첼시를 도와줘!

https://www.acmicpc.net/problem/11098

 

11098번: 첼시를 도와줘!

구단이 성적을 내지 못한다면 답은 새 선수 영입뿐이다. 이것은 오늘날 유럽 리그에서 가장 흔한 전략이고, 노르웨이의 로젠버그 팀은 이러한 전략이 성공한 대표적 예시다. 그들은 많은 스카

www.acmicpc.net

t = int(input())
for i in range(t):
    p = int(input())
    first, name = input().split()
    for i in range(1,p):
        n, m = input().split()
        if int(first) < int(n):
            first = n
            name = m
    print(name)

 

# 백준 기찍 N

https://www.acmicpc.net/problem/2742

 

2742번: 기찍 N

자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

www.acmicpc.net

n = int(input())
for i in range(n, 0, -1):
    print(i)

 

# 백준 2440 별 찍기 3

www.acmicpc.net/problem/2440

 

2440번: 별 찍기 - 3

첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제

www.acmicpc.net

n = int(input())
for i in range(n,0,-1):
    for j in range(i):
        print('*',end='')
    print()

 

# 백준 2442 별 찍기 5

https://www.acmicpc.net/problem/2442

 

2442번: 별 찍기 - 5

첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

n = int(input())
for i in range(1, n+1):
    for j in range(n-i):
        print(" ", end='')
    for j in range(2*i-1):
        print("*", end='')
    print()

 

# 백준 2443 별 찍기 5

www.acmicpc.net/problem/2443

 

2443번: 별 찍기 - 6

첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.

www.acmicpc.net

n = int(input())
for i in range(n):
    for j in range(i):
        print(" ", end='')
    for j in range(2*(n-i)-1):
        print("*", end='')
    print()

 

# 백준 2444 별 찍기 7

https://www.acmicpc.net/problem/2444

 

2444번: 별 찍기 - 7

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

n = int(input())
for i in range(1, n+1):
    for j in range(n-i):
        print(" ", end='')
    for j in range(2*i-1):
        print("*", end='')
    print()
for i in range(1, n):
    for j in range(i):
        print(" ", end='')
    for j in range(2*(n-i)-1):
        print("*", end='')
    print()

 

# 백준 2445 별 찍기 8 (나비 모양)

https://www.acmicpc.net/problem/2445

 

2445번: 별 찍기 - 8

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

n = int(input())
for i in range(1, n+1):
    for j in range(i):
        print("*", end='')
    for j in range(2*(n-i)):
        print(" ", end='')
    for j in range(i):
        print("*", end='')
    print()
for i in range(1,n):
    for j in range(n-i):
        print("*", end='')
    for j in range(2*i):
        print(" ", end='')
    for j in range(n-i):
        print("*", end='')
    print()

 

# 백준 2446 별 찍기 9 (모래시계 모양)

https://www.acmicpc.net/problem/2446

 

2446번: 별 찍기 - 9

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

n = int(input())
for i in range(n-1):
    for j in range(i):
        print(" ", end='')
    for j in range(2*(n-i)-1):
        print("*", end='')
    print()
for i in range(1,n+1):
    for j in range(n-i):
        print(" ", end='')
    for j in range(2*i-1):
        print("*", end='')
    print()

 

# 백준 2522 별 찍기 12

https://www.acmicpc.net/problem/2522

 

2522번: 별 찍기 - 12

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

n = int(input())
for i in range(1, n+1):
    for j in range(n-i):
        print(" ", end='')
    for j in range(i):
        print("*", end='')
    print()
for i in range(1, n):
    for j in range(i):
        print(" ", end='')
    for j in range(n-i):
        print("*", end='')
    print()

 

# 백준 2523 별 찍기 13

https://www.acmicpc.net/problem/2523

 

2523번: 별 찍기 - 13

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

n = int(input())
for i in range(1, n+1):
    for j in range(i):
        print("*", end='')
    print()
for i in range(1, n):
    for j in range(n-i):
        print("*", end='')
    print()

 

# 백준 10991 별 찍기 16 (피라미드 모양)

https://www.acmicpc.net/problem/10991

 

10991번: 별 찍기 - 16

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

n = int(input())
for i in range(1,n+1):
    for j in range(n-i):
        print(" ", end='')
    for j in range(i):
        print("* ", end='')
    print()   

 

# 백준 10995 별 찍기 20 (지그재그 모양)

https://www.acmicpc.net/problem/10995

 

10995번: 별 찍기 - 20

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

www.acmicpc.net

n = int(input())
for i in range(1,n+1):
    if i%2==0:
        for j in range(n):
            print(" *", end='')
    else:
        for j in range(n):
            print("* ", end='')
    print()

 

# 백준 8393

www.acmicpc.net/problem/8393

 

8393번: 합

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

www.acmicpc.net

n = int(input())
sum = 0
for i in range(1, n+1):
    sum += i
print(sum)

 

# 백준 2609 최대공약수와 최소공배수

www.acmicpc.net/problem/2609

 

2609번: 최대공약수와 최소공배수

첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다.

www.acmicpc.net

a, b = map(int, input().split())
n = a if a > b else b
m = a if a < b else b
while (m):
    n, m = m, n%m
    gcd = n
print(gcd)
print((a*b)//gcd)

 

# 백준 5565 영수증

www.acmicpc.net/problem/5565

 

5565번: 영수증

첫째 줄에 10권의 총 가격이 주어진다. 둘째 줄부터 9개 줄에는 가격을 읽을 수 있는 책 9권의 가격이 주어진다. 책의 가격은 10,000이하인 양의 정수이다.

www.acmicpc.net

hap = int(input())
for i in range(9):
    hap -= int(input())
print(hap)

 

# 백준 10952 A+B 5

https://www.acmicpc.net/problem/10952

 

10952번: A+B - 5

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

while True:
    a, b = map(int, input().split())
    if a == 0 and b == 0:
        break
    print(a+b)

 

# 백준 10984 내 학점을 구해줘 (반올림 round)

www.acmicpc.net/problem/10984

 

10984번: 내 학점을 구해줘

게으른 근우는 열심히 놀다가 문득, 자신의 학점 평균이 얼마일지 궁금해졌다. 학사시스템도 들어가기 귀찮아하는 근우를 위해 구해주도록 하자. 

www.acmicpc.net

t = int(input())
for i in range(t):
    n = int(input())
    hap_c, hap_g = 0, 0
    for j in range(n):
        c, g = map(float, input().split())
        hap_c += c
        hap_g += (g*c)
    print(int(hap_c), round(hap_g/hap_c, 1))

 

# 백준 10833 사과 (나머지 %연산자)

www.acmicpc.net/problem/10833

 

10833번: 사과

경상북도 특산품인 사과를 학생들에게 나눠주기 위해 여러 학교에 사과를 배정하였다. 배정된 사과 개수는 학교마다 다를 수 있고, 학생 수도 학교마다 다를 수 있다. 각 학교에서는 배정된 사

www.acmicpc.net

n = int(input())
re = 0
for i in range(n):
    s, a = map(int, input().split())
    re += a%s
print(re)

 

# 백준 9325 얼마?

https://www.acmicpc.net/problem/9325

 

9325번: 얼마?

해빈이는 학교를 다니면서 틈틈히 번 돈으로 자동차를 사려고 한다. 자동차에 여러 가지 옵션을 포함시킬 수 있는데 해빈이는 덧셈과 곱셈을 하지 못하기 때문에 친구 태완이에게 도움을 청했

www.acmicpc.net

t = int(input())
for i in range(t):
    s = int(input())
    n = int(input())
    for i in range(n):
        q, p = map(int, input().split())
        s += q*p
    print(s)

 

# 백준 5522 카드 게임

https://www.acmicpc.net/problem/5522

 

5522번: 카드 게임

JOI군은 카드 게임을 하고 있다. 이 카드 게임은 5회의 게임으로 진행되며, 그 총점으로 승부를 하는 게임이다. JOI군의 각 게임의 득점을 나타내는 정수가 주어졌을 때, JOI군의 총점을 구하는 프

www.acmicpc.net

hap = 0
for i in range(5):
    hap += int(input())
print(hap)

 

# 백준 10178 할로윈의 사탕

https://www.acmicpc.net/problem/10178

 

10178번: 할로윈의 사탕

할로윈데이에 한신이네는 아부지가 사탕을 나눠주신다. 하지만 한신이의 형제들은 서로 사이가 좋지않아 서른이 넘어서도 사탕을 공정하게 나누어 주지 않으면 서로 싸움이 난다. 매년 할로윈

www.acmicpc.net

t = int(input())
for i in range(t):
    c, v = map(int, input().split())
    print("You get %d piece(s) and your dad gets %d piece(s)." %(c//v, c%v))

 

# 백준 9295 주사위

https://www.acmicpc.net/problem/9295

 

9295번: 주사위

각 테스트 케이스마다 "Case x: "를 출력한 다음, 주사위를 두 번 던져 나온 두 수의 합을 출력한다. 테스트 케이스 번호(x)는 1부터 시작한다.

www.acmicpc.net

t = int(input())
for i in range(t):
    print("Case %d: %d" %(i+1, sum(map(int, input().split()))))

 

# 백준 2921 도미노

https://www.acmicpc.net/problem/2921

 

2921번: 도미노

도미노는 여러 종류의 타일 게임에서 사용하는 조각이다. 도미노 조각은 두 칸으로 이루어져 있다. 각 칸에는 점이 찍혀있는데, 점이 안 찍혀져 있을 수도 있다. 점의 개수는 세트의 크기에 의

www.acmicpc.net

n = int(input())
hap = 0
for i in range(n+1):
    for j in range(i,n+1):
        hap += (i+j)
print(hap)

 

# 백준 1978 소수 찾기

https://www.acmicpc.net/problem/1978

 

1978번: 소수 찾기

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

www.acmicpc.net

n = int(input())
num = list(map(int, input().split()))
hap = 0
for i in range(n):
    b = False
    for j in range(2, int(num[i]**0.5)+1):
        if num[i] % j == 0:
            b = True
            break
    if num[i] > 1 and (b == False or num[i] == 2):
        hap += 1
print(hap)

 

# 백준 2581 소수

https://www.acmicpc.net/problem/2581

 

2581번: 소수

M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다.  단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

www.acmicpc.net

m = int(input())
n = int(input())
answer = []
for i in range(m, n+1):
    b = False
    for j in range(2, int(i**0.5)+1):
        if i % j == 0:
            b = True
            break
    if i > 1 and (b == False or i == 2):
        answer.append(i)
if answer == []:
    print(-1)
else:
    print(sum(answer))
    print(answer[0])

 

# 백준 2747 피보나치 수

https://www.acmicpc.net/problem/2747

 

2747번: 피보나치 수

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net

n = int(input())
fi = [0,1]
for i in range(1, n):
    fi.append(fi[i-1]+fi[i])
print(fi[n])

 

# 백준 9085 더하기

https://www.acmicpc.net/problem/9085

 

9085번: 더하기

입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 첫 줄에 자연수의 개수 N(1 ≤ N ≤ 100)이 주어지고, 그 다음 줄에는 N개의 자연수가 주어진다. 각각의 자연

www.acmicpc.net

t = int(input())
for i in range(t):
    n = int(input())
    hap = sum(map(int, input().split()))
    print(hap)

 

# 백준 10797 10부제

https://www.acmicpc.net/problem/10797

 

10797번: 10부제

서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는

www.acmicpc.net

n = input()
inp = list(input().split())
result = 0
for i in range(len(inp)):
    if n == inp[i][0]:
        result += 1
print(result)

 

# 백준 2506 점수계산

https://www.acmicpc.net/problem/2506

 

2506번: 점수계산

OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기로

www.acmicpc.net

n = int(input())
inp = list(input().split())
con, result = 0, 0
for i in range(n):
    if inp[i] == '1':
        con += 1
        result += con
    else:
        con = 0
print(result)

 

# 백준 1546 평균

https://www.acmicpc.net/problem/1546

 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

n = int(input())
inp = list(map(int, input().split()))
inp.sort()

for i in range(n):
    inp[i] = inp[i]/inp[n-1]*100
print(sum(inp)/n)

 

# 백준 2908 상수

https://www.acmicpc.net/problem/2908

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

a, b = input().split()
if a[::-1] > b[::-1]: 
    print(a[::-1])
else:
    print(b[::-1])

 

# 백준 1130 두 수 비교하기

www.acmicpc.net/problem/1330

 

1330번: 두 수 비교하기

두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

www.acmicpc.net

a, b = map(int, input().split())
if a > b:
    print('>')
elif a < b:
    print('<')
else:
    print('==')

 

# 백준 2920 음계

www.acmicpc.net/problem/2920

 

2920번: 음계

다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8

www.acmicpc.net

inp = list(map(int, input().split()))
ascending = [1,2,3,4,5,6,7,8]
descending = [8,7,6,5,4,3,2,1]
if inp == ascending:
    print("ascending")
elif inp == descending:
    print("descending")
else:
    print("mixed")

 

# 백준 10818 최소, 최대

www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

n = int(input())
inp = list(map(int, input().split()))
print(min(inp), max(inp))

 

# 백준 11654 아스키코드

www.acmicpc.net/problem/11654

 

11654번: 아스키 코드

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

www.acmicpc.net

inp = input()
print(ord(inp))

 

# 백준 11720 숫자의 합

www.acmicpc.net/problem/11720

 

11720번: 숫자의 합

첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.

www.acmicpc.net

n = int(input())
inp = list(input())
hap = 0
for i in inp:
    hap += int(i)
print(hap)

 

# 백준 10951 A+B - 4

www.acmicpc.net/problem/10951

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

while True:
    try:
        A, B = map(int, input().split())
        print(A+B)
    except:
        break

 

# 백준 3052 나머지

www.acmicpc.net/problem/3052

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

inp = []
result = []
for i in range(10):
    inp.append(int(input()))
    result.append(inp[i]%42)
print(len(list(set(result))))

 

# 백준 10171 고양이

www.acmicpc.net/problem/10171

 

10171번: 고양이

아래 예제와 같이 고양이를 출력하시오.

www.acmicpc.net

print("\    /\\")
print(" )  ( \')")
print("(  /  )")
print(" \(__)|")

 

# 백준 10172 개

www.acmicpc.net/problem/10172

 

10172번: 개

문제 아래 예제와 같이 개를 출력하시오. 입력 출력 예제 입력 1 복사 예제 출력 1 복사 |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|...

www.acmicpc.net

print(r'|\_/|') 
print(r'|q p|   /}') 
print(r'( 0 )"""\ ') 
print(r'|"^"`    |') 
print(r'||_/=\\__|')

 

# 백준 10809 알파벳 찾기

www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

alpha = 'abcdefghijklmnopqrstuvwxyz'
result = [-1 for i in range(len(alpha))]
inp = input()
for i in range(len(inp)):
    if result[ord(inp[i])-97] == -1:
        result[ord(inp[i])-97] = i
for i in result:
    print(str(i), end=' ')

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기