728x90

BOJ 3460 이진수

문제

양의 정수 n이 주어졌을 때, 이를 이진수로 나타냈을 때 1의 위치를 모두 찾는 프로그램을 작성하시오. 

최하위 비트(least significant bit, lsb)의 위치는 0이다.

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

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다.

각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. (1 ≤ T ≤ 10, 1 ≤ n ≤ 10^6)

출력

각 테스트 케이스에 대해서, 1의 위치를 공백으로 구분해서 줄 하나에 출력한다. 

위치가 낮은 것부터 출력한다.

예제 입력 1

1
13

예제 출력 1

0 2 3

풀이

# boj 3460 이진수

t = int(input())
 
for _ in range(t):
    n = bin(int(input()))[2:]
    for i in range(len(n)):
        if n[-i - 1] == '1':
            print(i, end=' ')
728x90
728x90

BOJ 9085 더하기

문제

10보다 작거나 같은 자연수 N개를 주면 합을 구하는 프로그램을 작성하시오.

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

입력

입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 

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

각각의 자연수 사이에는 하나씩의 공백이 있다.

출력

각 테스트 케이스에 대해서 주어진 자연수의 합을 한 줄에 하나씩 출력한다.

예제 입력 1

2
5
1 1 1 1 1
7
1 2 3 4 5 6 7

예제 출력 1

5
28

풀이

# boj 9085 더하기

t = int(input())
for _ in range(t):
    n = int(input())
    arr = list(map(int, input().split()))
    print(sum(arr))
728x90
728x90

BOJ 5717 상근이의 친구들

문제

상근이의 남자 친구의 수와 여자 친구의 수가 주어졌을 때, 친구는 총 몇 명인지 구하는 프로그램을 작성하시오.

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

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다. 

각 테스트 케이스는 두 정수 M과 F로 이루어져 있으며, 각각은 상근이의 남자 친구의 수와 여자 친구의 수이다. (1 ≤ M, F ≤ 5)

입력의 마지막 줄에는 0이 두 개 주어진다.

출력

각 테스트 케이스마다 상근이의 친구의 수를 출력한다.

예제 입력 1

2 2
2 3
5 5
1 1
0 0

예제 출력 1

4
5
10
2

풀이

# boj 5717 상근이의 친구들

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

BOJ 16430 제리와 톰

문제

톰은 마트에서 치즈 1kg 을 사서 집으로 돌아왔습니다.

그런데 톰이 한눈을 판 사이 제리가 와서 A/B kg 만큼 훔쳐갔습니다.

제리가 치즈를 훔쳐 간 후 톰이 가지고 있는 치즈의 무게는 얼마인가요?

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

입력

첫 번째 줄에 두 정수 A, B (1 ≤ A < B ≤ 9) 가 주어집니다. 

A와 B는 서로소임이 보장됩니다.

출력

정답을 기약분수로 표현했을 때 P/Q kg 이라면 첫 번째 줄에 P와 Q를 공백을 사이에 두고 출력합니다.

예제 입력 1

2 7

예제 출력 1

5 7

예제 입력 2

5 8

예제 출력 2

3 8

풀이

# boj 16430 제리와 톰

a, b = map(int, input().split())
print(b-a, b)
728x90
728x90

BOJ 10833 사과

문제

경상북도 특산품인 사과를 학생들에게 나눠주기 위해 여러 학교에 사과를 배정하였다. 

배정된 사과 개수는 학교마다 다를 수 있고, 학생 수도 학교마다 다를 수 있다.

각 학교에서는 배정된 사과를 모든 학생들에게 똑같이 나눠주되, 남는 사과의 개수를 최소로 하려고 한다. 

(서로 다른 학교에 속한 학생이 받는 사과 개수는 다를 수 있다.)

예를 들어, 5개 학교의 학생 수와 배정된 사과 수가 다음과 같다고 하자.
학교 A B C D E
학생 수 24 13 5 23 7
사과 개수 52 22 53 10 70
A 학교에서는 모든 학생에게 사과를 두 개씩 나눠주고 4개의 사과가 남게 된다. 

B 학교에서는 모든 학생에게 사과를 한 개씩 나눠주고 9개의 사과가 남게 된다. 

비슷하게 C 학교에서는 3개의 사과가, D 학교에서는 10개의 사과가, 

E 학교에서는 0개의 사과가 남게 되어, 남는 사과의 총 수는 4+9+3+10+0 = 26이다. 

각 학교의 학생 수와 사과 개수가 주어졌을 때, 

학생들에게 나눠주고 남는 사과의 총 개수를 구하는 프로그램을 작성하시오.

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

입력

첫 번째 줄에는 학교의 수를 나타내는 정수 N (1 ≤ N ≤ 100)이 주어진다. 

다음 N 개의 줄에 각 학교의 학생 수와 배정된 사과 개수를 나타내는 두 개의 정수가 주어진다. 

학생 수와 사과 개수는 모두 1이상 100이하이다.

출력

남은 사과의 총 개수를 나타내는 정수를 출력한다.

서브태스크

번호 배점 제한
1 11 N = 1
2 23 N = 2
3 66 원래의 제약조건 외에는 아무 제약조건이 없다

예제 입력 1

5
24 52
13 22
5 53
23 10
7 70

예제 출력 1

26

예제 입력 2

3
10 20
5 5
1 13

예제 출력 2

0

풀이

# boj 10833 사과

n = int(input())
res = 0

for _ in range(n):
    a, b = map(int, input().split())
    res += b % a
    
print(res)
728x90
728x90

BOJ 2476 주사위 게임

문제

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.

같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 
같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 
모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.  

예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 

또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 

3개의 눈이 6, 2, 5로 주어지면 그 중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게 된다.

N(2 ≤ N ≤ 1,000)명이 주사위 게임에 참여하였을 때, 

가장 많은 상금을 받은 사람의 상금을 출력하는 프로그램을 작성하시오.

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

입력

첫째 줄에는 참여하는 사람 수 N이 주어지고 그 다음 줄부터 N개의 줄에 사람들이 주사위를 던진 3개의 눈이 빈칸을 사이에 두고 각각 주어진다.

출력

첫째 줄에 가장 많은 상금을 받은 사람의 상금을 출력한다.

예제 입력 1

3
3 3 6
2 2 2
6 2 5

예제 출력 1

12000

풀이

# boj 2476 주사위 게임

n = int(input())
money = 0

for i in range(n):
    a,b,c = map(int, input().split())
    if a == b == c :
        money = max(money, 10000+a*1000)
    elif a == b:
        money = max(money, 1000+a*100)
    elif a == c:
        money = max(money, 1000+a*100)
    elif b == c:
        money = max(money, 1000+b*100)
    else :
        money = max(money, max(a,b,c)*100)
        
print(money)
728x90
728x90

BOJ 5063 TGN

문제

상근이는 TGN사의 사장이다.

TGN은 Teenager Game Network의 약자 같지만, 사실 Temporary Group Name의 약자이다.

이 회사는 청소년을 위한 앱을 만드는 회사이다. 

일년에 걸친 개발기간 끝에 드디어 앱을 완성했고, 이제 팔기만 하면 된다.

상근이는 데이트를 인간의 두뇌로 이해할 수 없을 정도로 많이 한다. 

따라서 엄청난 데이트 비용이 필요하다. 상근이는 광고를 적절히 해서 수익을 최대한 올리려고 한다.

어느 날 하늘을 바라보던 상근이는 시리우스의 기운을 받게 되었고, 광고 효과를 예측하는 능력을 갖게 되었다.

광고 효과가 주어졌을 때, 광고를 해야할지 말아야할지 결정하는 프로그램을 작성하시오.

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

입력

출력

각 테스트 케이스에 대해서, 광고를 해야 하면 "advertise", 하지 않아야 하면 "do not advertise", 

광고를 해도 수익이 차이가 없다면 "does not matter"를 출력한다.

예제 입력 1

3
0 100 70
100 130 30
-100 -70 40

예제 출력 1

advertise
does not matter
do not advertise

풀이

# boj 5063 TGN

t = int(input())

for i in range(t):
    a, b, c = map(int, input().split())
    d = b - c
    if a > d:
        print("do not advertise")
    elif a < d:
        print("advertise")
    else:
        print("does not matter")
728x90
728x90

BOJ 5596 시험 점수

문제

대한고등학교에 재학 중인 민국이와 만세는 4과목(정보, 수학, 과학, 영어)에 대한 시험을 봤다. 

민국이와 만세가 본 4과목의 점수를 입력하면, 민국이의 총점 S와 만세의 총점 T 중에서 큰 점수를 출력하는 프로그램을 작성하시오.

단, 서로 동점일 때는 민국이의 총점 S를 출력한다.

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

입력

입력은 2줄로 이루어져 있다.

1번째 줄에는 순서대로 민국이의 정보, 수학, 과학, 영어 점수(정수형)가 있으며, 공백으로 구분되어 있다.

2번째 줄에는 1번째 줄과 마찬가지로 순서대로 만세의 정보, 수학, 과학, 영어 점수(정수형)가 있고, 공백으로 구분되어 있다.

출력

문제에서 요구하는 정답을 출력한다.

예제 입력 1

100 80 70 60
80 70 80 90

예제 출력 1

320

예제 입력 2

100 80 70 60
80 70 60 100

예제 출력 2

310

풀이

# boj 5596 시험 점수
a = list(map(int, input().split()))
b = list(map(int, input().split()))
s = sum(a)
t = sum(b)

print(max(s, t))
728x90

+ Recent posts