2학년 동계 모각코 6회차

목표 : 5주차에 이어 이것이 코딩 테스트다 with 파이썬 에 실려있는 알고리즘 문제를 풀어보자.

Code

# 모험가 길드 문제

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

result = 0 # 그룹의 개수
count = 0 # 현재 그룹에 포함된 모험가의 수

for i in data:
    count += 1
    if count >= i:  # 모험가의 수가 모험가의 공포도보다 크거나 같은 경우
        result += 1 # 그룹 수 증가
        count = 0   # 모험가의 수 초기화

print(result)

Code

# 곱하기 혹은 더하기 문제
# 0, 1의 경우는 더하고 그 외의 숫자는 곱한다.

data = input()

result = int(data[0])

for i in range(1, len(data)):
    num = int(data[i])
    if num <= 1 or result <= 1:
        result += num
    else:
        result *= num

print(result)

Code

# 문자열 뒤집기 문제
data = input()
zero = 0
one = 0

if data[0] == '1':
    zero += 1
else:
    one += 1

for i in range(len(data) - 1):
    if data[i] != data[i + 1]:
        if data[i + 1] == '1':
            zero += 1
        else:
            one += 1

print(min(zero, one))

Code

# 만들 수 없는 금액 문제

n = int(input())
data = list(map(int, input().split()))
data.sort()     # 오름차순 정렬

target = 1  # 만들 수 없는 최소 금액을 찾기 위한 변수
for x in data:
    if target < x:  # 만들 수 없는 금액을 찾은 경우
        break
    target += x

print(target)

Code

# 볼링공 고르기 문제
n, m = map(int, input().split())
data = list(map(int, input().split()))

array = [0] * 11

for x in data:  # 각 무게에 해당하는 볼링공의 개수 세기
    array[x] += 1

result = 0

for i in range(1, m + 1):
    n -= array[i]
    result += array[i] * n

print(result)

좋은 웹페이지 즐겨찾기