코딩테스트 - Q 01 ~ Q 03

DaY·2021년 5월 17일
1

코딩테스트

목록 보기
11/13
post-thumbnail

Q 01

모험가 길드

💡 그리디 알고리즘

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

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

for i in data :
    count += 1 # 현재 그룹에 해당 모험가 포함
    if count >= 1 : # 현재 그룹에 포함된 모험가 수가 현재 공포도 이상인 경우, 그룹 결성
        group += 1 # 총 그룹의 수 증가
        count = 0 # 현재 그룹에 포함된 모험가 수 초기화

print(group)

Q2

곱하기 혹은 더하기

💡 그리디 알고리즘

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)

Q3

문자열 뒤집기

💡 그리디 알고리즘

data = input()
count0 = 0 # 0으로 변환하는 경우
count1 = 0 # 1로 변환하는 경우

if data[0] == '1' :
    count0 += 1
else :
    count1 += 1

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

print(min(count0, count1))

0개의 댓글