정화 코딩

EDOC 코딩테스트 본문

PS

EDOC 코딩테스트

jungh150c 2023. 9. 4. 13:08

전부 파이썬으로 풀었고 다 푸는 데에 40-50분 정도 걸렸다. C문제를 다른 방법으로 푸느라 20-30분 정도 더 썼다. 

 


 

A. 사칙연산 (백준 10869번)

 

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

 

import sys

a, b = map(int, sys.stdin.readline().split())

print(a+b)
print(a-b)
print(a*b)
print(a//b)
print(a%b)

 

(정답)

 


 

B. 나머지 (백준 10430번)

 

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

 

import sys

a, b, c = map(int, sys.stdin.readline().split())

print((a+b)%c)
print(((a%c)+(b%c))%c)
print((a*b)%c)
print(((a%c)*(b%c))%c)

 

(정답)

 


 

C. 수 정렬하기 (백준 2750번)

 

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

 

import sys

n = int(sys.stdin.readline())
data = []

for i in range(0, n) :
    data.append(int(sys.stdin.readline()))

data.sort()

for i in range(0, n) :
    print(data[i])

 

처음엔 당연히 파이썬 내 sort 함수를 이용해서 풀었다. (정답)

 

import sys

n = int(sys.stdin.readline())
data = []

for i in range(0, n) :
    data.append(int(sys.stdin.readline()))

#data.sort()

for i in range(1, n) :
    temp = data[i]
    for j in range(0, i) :
        if temp < data[i-j-1] :
            data[i-j] = data[i-j-1]
            data[i-j-1] = temp
        else :
            data[i-j] = temp
            break

for i in range(0, n) :
    print(data[i])

 

근데 뭔가 스스로 정렬하는 것도 할 수 있는 걸 어필하면 좋은가? 싶어서 함수를 쓰지 않고 직접 정렬하는 코드도 작성해서 제출했다. (정답)

 


 

D. 블랙잭 (백준 2798번)

 

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

 

import sys

n, m = map(int, sys.stdin.readline().split())
data = list(map(int, sys.stdin.readline().split()))
max = 0

for i in range(0, n-2) :
    for j in range(i+1, n-1) :
        for k in range(j+1, n) :
            sum = data[i] + data[j] + data[k]
            if sum <= m :
                if sum > max :
                    max = sum

print(max)

 

엄청 최근에 풀었던 문제..!! (정답)

 


 

E. 동전 0 (백준 11047번)

 

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

 

import sys

n, k = map(int, sys.stdin.readline().split())
coin = []
count = 0

for i in range(0, n) :
    coin.append(int(sys.stdin.readline()))

for i in range(0, n) :
    if coin[n-i-1] <= k :
        count += k // coin[n-i-1]
        k = k % coin[n-i-1]

print(count)

 

예전에 C언어로 풀었던 문제. (정답)

 


 

F. 수리공 항승 (백준 1449번)

 

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

 

import sys

n, l = map(int, sys.stdin.readline().split())
leak = list(map(int, sys.stdin.readline().split()))
leak.sort()
tape = [0] * 1000
count = 0

for i in range(0, n) :
    if tape[leak[i]-1] == 0 :
        for j in range(leak[i]-1, leak[i]-1+l) :
            if j < 1000 :
                tape[j] = 1
        count += 1

print(count)

 

우와 이거 예전에 EC.crew에서 봤던 문제이다. 그 때는 어려워서 못 풀었는데 지금 풀어보니 어렵지 않게 풀렸다. 후후 성장했군... (정답)

 


 

G. 괄호 (백준 9012번)

 

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

 

import sys

t = int(sys.stdin.readline())

for i in range(0, t) :
    data = sys.stdin.readline().strip()
    stk = []
    isVPS = True

    for j in range(0, len(data)) :
        if data[j] == '(' :
            stk.append(1)
        elif data[j] == ')' :
            if len(stk) == 0 :
                isVPS = False
                break
            else :
                del stk[-1]
    
    if len(stk) != 0 :
        isVPS = False

    if isVPS :
        print("YES")
    else :
        print("NO")

 

이것도 최근에 풀었던 문제! (정답)

 

Comments