728x90

BOJ 2407 조합

문제

시간 제한 : 2 초
메모리 제한 : 128 MB

입력

n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n)

출력

예제 입력 1

100 6

예제 출력 1

1192052400

풀이

# boj 2407 조합
import math

n, m = map(int, input().split())
numer = math.factorial(n)
deno = (math.factorial(n-m)) * (math.factorial(m))

print(numer//deno)

 

728x90
728x90

BOJ 5554 심부름 가는 길

문제

승균이는 매일 학교, PC방, 학원에 다닌다. 

반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 

그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집에 가서 분석해보기로 했다.

집에 도착한 승균이는 측정한 결과를 보는 데, 전부 초 단위로 기록되어있다! 

맨날 놀기만 해서 총 이동 시간이 몇 분 몇 초인지 계산을 못 하는 승균이를 도와주자.

하루 동안 측정한 결과가 주어지면, 이날의 총 이동 시간이 몇 분 몇 초인지 출력하는 프로그램을 작성하시오.

시간 제한 : 1 초
메모리 제한 : 128 MB

입력

입력은 총 4줄이며, 한 줄에 하나씩 양의 정수가 적혀있다.

첫 번째 줄에 집에서 학교까지의 이동 시간을 나타내는 초가 주어진다.
두 번째 줄에 학교에서 PC방까지의 이동 시간을 나타내는 초가 주어진다.
세 번째 줄에 PC방에서 학원까지의 이동 시간을 나타내는 초가 주어진다. 
마지막 줄에 학원에서 집까지의 이동 시간을 나타내는 초가 주어진다.

집에 늦게 가면 혼나기 때문에, 총 이동시간은 항상 1 분 0 초 이상 59 분 59 초 이하이다.

출력

총 이동시간 x 분 y 초를 출력한다. 

첫 번째 줄에 x를, 두 번째 줄에 y를 출력한다.

예제 입력 1

31
34
7
151

예제 출력 1

3
43

예제 입력 2

316
430
643
1253

예제 출력 2

44
2

예제 입력 3

5
10
15
30

예제 출력 3

1
0

풀이

# boj 5554 심부름 가는 길

res = 0

for i in range(4):
	res += int(input())
print(res // 60)
print(res % 60)
728x90
728x90

BOJ 2338 긴자리 계산

문제

두 수 A, B를 입력받아, A+B, A-B, A×B를 구하는 프로그램을 작성하시오.

시간 제한 : 2 초
메모리 제한 : 128 MB

입력

첫째 줄에 A가, 둘째 줄에 B가 주어진다.

각각의 수는 10진수로 1,000자리를 넘지 않으며 양수와 음수가 모두 주어질 수 있다.

출력

첫째 줄에 A+B, 둘째 줄에 A-B, 셋째 줄에 A×B를 출력한다.

각각을 출력할 때, 답이 0인 경우를 제외하고는 0으로 시작하게 해서는 안 된다(1을 01로 출력하면 안 된다는 의미).

예제 입력 1

1
-1

예제 출력 1

0
2
-1

풀이

# boj 2338 긴자리 계산

a = int(input())
b = int(input())

print(a+b)
print(a-b)
print(a*b)
728x90
728x90

BOJ 5565 영수증

문제

새 학기를 맞아 상근이는 책을 10권 구입했다. 

상근이는 의욕이 너무 앞서서 가격을 조사하지 않고 책을 구입했다. 

이제 각 책의 가격을 알아보려고 한다.

하지만, 영수증에는 얼룩이 묻어있었고, 상근이는 책 10권 중 9권의 가격만 읽을 수 있었다.

책 10권의 총 가격과 가격을 읽을 수 있는 9권 가격이 주어졌을 때, 

가격을 읽을 수 없는 책의 가격을 구하는 프로그램을 작성하시오.

시간 제한 : 1 초
메모리 제한 : 128 MB

입력

첫째 줄에 10권의 총 가격이 주어진다. 

둘째 줄부터 9개 줄에는 가격을 읽을 수 있는 책 9권의 가격이 주어진다.

책의 가격은 10,000이하인 양의 정수이다.

출력

첫째 줄에 가격을 읽을 수 없는 책의 가격을 출력한다.

예제 입력 1

9850
1050
800
420
380
600
820
2400
1800
980

예제 출력 1

600

풀이

# boj 5565 영수증

res = int(input())

for i in range(9):
    res -= int(input())
print(res)
728x90
728x90

BOJ 2953 나는 요리사다

문제

"나는 요리사다"는 다섯 참가자들이 서로의 요리 실력을 뽐내는 티비 프로이다. 

각 참가자는 자신있는 음식을 하나씩 만들어오고, 서로 다른 사람의 음식을 점수로 평가해준다.

점수는 1점부터 5점까지 있다.

각 참가자가 얻은 점수는 다른 사람이 평가해 준 점수의 합이다. 

이 쇼의 우승자는 가장 많은 점수를 얻은 사람이 된다.

각 참가자가 얻은 평가 점수가 주어졌을 때, 우승자와 그의 점수를 구하는 프로그램을 작성하시오.

시간 제한 : 1 초
메모리 제한 : 128 MB

입력

총 다섯 개 줄에 각 참가자가 얻은 네 개의 평가 점수가 공백으로 구분되어 주어진다.

첫 번째 참가자부터 다섯 번째 참가자까지 순서대로 주어진다.

항상 우승자가 유일한 경우만 입력으로 주어진다.

출력

첫째 줄에 우승자의 번호와 그가 얻은 점수를 출력한다.

예제 입력 1

5 4 4 5
5 4 4 4
5 5 4 4
5 5 5 4
4 4 4 5

예제 출력 1

4 19

예제 입력 2

4 4 3 3
5 4 3 5
5 5 2 4
5 5 5 1
4 4 4 4

예제 출력 2

2 17

풀이

# boj 2953 나는 요리사다

idx = 0
res = 0
for i in range(5):
    sum = 0
    a = map(int, input().split())
    a = list(a)
    for j in range(4):
        sum += a[j]
    if(res < sum):
        res = sum
        idx = i+1

print(idx, res)
728x90
728x90

BOJ 10886 0 = not cute / 1 = cute

문제

준희는 자기가 팀에서 귀여움을 담당하고 있다고 생각한다. 

하지만 연수가 볼 때 그 의견은 뭔가 좀 잘못된 것 같았다. 

그렇기에 설문조사를 하여 준희가 귀여운지 아닌지 알아보기로 했다.

시간 제한 : 1 초
메모리 제한 : 2 MB

입력

첫 번째 줄에 설문조사를 한 사람의 수 N (1 ≤ N ≤ 101, N은 홀수)가 주어진다.

다음 N개의 줄에는 각 줄마다 각 사람이 설문 조사에 어떤 의견을 표명했는지를 나타내는 정수가 주어진다.

0은 준희가 귀엽지 않다고 했다는 뜻이고, 1은 준희가 귀엽다고 했다는 뜻이다.

출력

준희가 귀엽지 않다는 의견이 더 많을 경우 "Junhee is not cute!"를 출력하고 

귀엽다는 의견이 많을 경우 "Junhee is cute!"를 출력하라.

예제 입력 1

3
1
0
0

예제 출력 1

Junhee is not cute!

힌트

팀 내에서 설문조사를 진행하면 아마 위와 같은 결과를 얻게 될 것이다.

풀이

# boj 10886 0 = not cute / 1 = cute

n = int(input())
cnt = 0

for _ in range(n):
    if int(input()) == 1:
        cnt += 1

if cnt > n//2:
    print("Junhee is cute!")
else:
    print("Junhee is not cute!")
728x90
728x90

BOJ 5522 카드 게임

문제

JOI군은 카드 게임을 하고 있다. 

이 카드 게임은 5회의 게임으로 진행되며, 그 총점으로 승부를 하는 게임이다.

JOI군의 각 게임의 득점을 나타내는 정수가 주어졌을 때, JOI군의 총점을 구하는 프로그램을 작성하라.

시간 제한 : 1 초
메모리 제한 : 256 MB

입력

표준 입력에서 다음과 같은 데이터를 읽어온다.

i 번째 줄(1 ≤ i ≤ 5)에는 정수 Ai가 적혀있다. 이것은 i번째 게임에서의 JOI군의 점수를 나타낸다.

출력

표준 출력에 JOI군의 총점을 한 줄로 출력하라.

제한

0 ≤ Ai ≤ 100.

서브태스크

번호 배점 제한
1 20 0 ≤ Ai ≤ 10.
2 80 추가적인 제약 조건이 없다.

예제 입력 1

1
2
3
4
5

예제 출력 1

15

예제 입력 2

0
100
0
10
100

예제 출력 2

210

풀이

# boj 5522 카드게임

res = 0
for _ in range(5):
    res += int(input())
print(res)
728x90
728x90

BOJ 2845 파티가 끝나고 난 뒤

문제

파티가 끝나고 나면, 사람들은 누가 파티에 왔는지와 얼마나 많은 사람들이 왔는지를 궁금해한다. 

보통 파티는 매우 크게 열리기 때문에, 정확하게 몇 명이 참가했는지 알 수가 없다.

지난주 토요일에 상근이는 자신의 3학년 진학을 기념하면서 매우 성대한 파티를 열었다. 

그리고, 상근이는 1m2당 몇 명의 사람이 있었는지 알고있다.

상근이의 파티는 정말 엄청난 규모였기 때문에, 대부분의 신문에도 기사가 실렸다. 

상근이는 서로 다른 5개의 신문을 보면서 그 기사에 적혀져있는 참가자의 수를 적었다.

상근이는 자신이 알고있는 참가자의 수가 정확하다고 생각한다. 

각 신문 기사에 실려있는 참가자의 수가 몇 명 만큼 잘못되어있는지 구하는 프로그램을 작성하시오.

시간 제한 : 1 초
메모리 제한 : 128 MB

입력

첫째 줄에 1m2당 사람의 수 L (1 ≤ L ≤ 10)과 파티가 열렸던 곳의 넓이 P (1 ≤ P ≤ 1000)가 주어진다.

둘째 줄에는 각 기사에 실려있는 참가자의 수가 주어진다. 106보다 작은 양의 정수 5개가 주어진다.

출력

출력은 첫째 줄에 다섯 개의 숫자를 출력해야 한다.

이 숫자는 상근이가 계산한 참가자의 수와  각 기사에 적혀있는 참가자의 수의 차이이다.

예제 입력 1

1 10
10 10 10 10 10

예제 출력 1

0 0 0 0 0

예제 입력 2

5 20
99 101 1000 0 97

예제 출력 2

-1 1 900 -100 -3

풀이

# boj 2845 파티가 끝나고 난 뒤

a, b = map(int, input().split())
people = list(map(int, input().split()))
party = a * b
for i in people:
    print(i - party, end=' ')
728x90

+ Recent posts