정화 코딩
EDOC 코딩테스트 본문
전부 파이썬으로 풀었고 다 푸는 데에 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")
이것도 최근에 풀었던 문제! (정답)
'PS' 카테고리의 다른 글
꾸준히 문제 풀기 - 9월 4주차 (0) | 2023.09.19 |
---|---|
꾸준히 문제 풀기 - 9월 3주차 (0) | 2023.09.18 |
꾸준히 문제 풀기 - 9월 1, 2주차 (0) | 2023.09.02 |
EDOC 코딩테스트 예비소집 (0) | 2023.09.02 |
매일 문제 풀기 - 8월 다섯째 주 (0) | 2023.08.29 |