민듀키티

[240521] 코딩테스트 문제풀이 본문

카테고리 없음

[240521] 코딩테스트 문제풀이

민듀키티 2024. 5. 21. 12:06

1. 가로수

https://www.acmicpc.net/problem/2485

def gcd(a,b) :
    if b == 0 :
        return a

    else :
        return gcd(b,a%b)

# input 값 받기
n = int(input())
minus_list = list()

for i in range(n) :
    if i == 0 :
        pir = int(input())

    else :
        next = int(input())
        minus_list.append(next-pir)
        pir = next



for i in range(len(minus_list)) :

    if i == 0 :
        a = minus_list[i]
        b = minus_list[i+1]
        number = gcd(b,a)

    else :
        a = minus_list[i]
        number = gcd(a,number)


answer = 0
for i in range(len(minus_list)) :
    answer += minus_list[i] // number - 1

print(answer)

 


2. 분수합

https://www.acmicpc.net/problem/1735

a,b = map(int, input().split())
c,d = map(int, input().split())


number_1 = int(a*d + b*c)
number_2 = int(b*d)

def gcd(a,b) :
    if b == 0 :
        return a

    else :
        return gcd(b, a%b)

divide_number = gcd(number_1, number_2)
number_1 = number_1 // divide_number
number_2 = number_2 // divide_number
print(number_1 , number_2 )

 


3. 안정적인 문자열

https://www.acmicpc.net/problem/4889

turn = 0
while True :
    A = list(input())
    turn += 1

    if '-' in A :
        break

    else :
        stack = list()
        count = 0
        for i in A :
            if len(stack) == 0:
                stack.append(i)

            elif stack[-1] == '{' and i == '}' :
                del stack[-1]

            else :
                stack.append(i)

    for i in range(len(stack)) :
        if i%2 == 0 :
            if stack[i] != '{' :
                count += 1

        else :
            if stack[i] != "}" :
                count += 1

    print(str(turn)+".", count)