190109 백준 알고리즘 문제풀기

|

Baekjoon 알고리즘 문제풀기

[8958] OX퀴즈

문제

  • “OOXXOXXOOO”의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
  • 위 규칙대로 N번의 횟수에 대해 반복하는 프로그램을 작성

  • 파이썬 list내의 빈 문자를 제거 할 땐 list_name = [x for x in list_name if x]를 이용한다.

정답

case = int(input())

for j in range(case):
    a = str(input())
    r = ''
    for k in range(len(a)):
        if a[k]=='O':
            r += '1'
        else:
            r += '0'
    r = [x for x in r.split('0') if x]
    sum = 0
    for j in range(len(r)):
        for k in range(len(r[j])):
            sum += (k+1)
    print(sum)

[2920] 음계

문제

  • 8개의 숫자가 주어지고, 그 숫자가 증가하는 추세면 ‘ascending’, 감소하는 추세면 ‘descending’, 증감하면 ‘mixed’를 출력

정답

a = list(map(int, input().split()))

def pm (a):
    if a<0:
        return -1
    else:
        return 1

result = []
for j in range(len(a)-1):
    result.append(pm(a[j] - a[j+1]))
if -1 in result:
    if 1 in result:
        print('mixed')
    else:
        print('ascending')
else:
    print('descending')

[10039] 평균 점수

문제

  • 5명의 점수를 입력하나, 40점 미만은 40점이 된다.

정답

avg = 0.0
for j in range(5):
    s = int(input())
    if s<40:
        s = 40
    avg += float(s)
print(int(avg/5.0))