[코테 준비 : day08]

Choi·2023년 7월 3일
0

코딩테스트 준비

목록 보기
8/22

컴백준

프로그래머스로 하다가 백준도 같이 하는게 좋을거같아서 컴백 백준!

  1. 수 정렬하기 2
    https://www.acmicpc.net/problem/2751
import sys

n = int(input())
num = []
for _ in range(n):
    num.append(int(sys.stdin.readline()))

num.sort()

for i in num:
    print(i)
  1. 괄호
    https://www.acmicpc.net/problem/9012

프로그래머스에서 풀었던 문제다. 괄호문제! '('는 스택 ')' 팝!

T = int(input())

for i in range(T):
    stack = []
    a=input()
    for j in a:
        if j == '(':
            stack.append(j)
        elif j == ')':
            if stack:
                stack.pop()
            else: # 스택에 괄호가 없을경우 NO
                print("NO")
                break
    else: # break문으로 끊기지 않고 수행됬을경우 수행한다
        if not stack: # break문으로 안끊기고 스택이 비어있다면 괄호가 다 맞는거다.
            print("YES")
        else: # break안 걸렸더라도 스택에 괄호가 들어있다면 NO이다.
            print("NO")
  1. 수 찾기
    https://www.acmicpc.net/problem/1920
N = int(input())
array = set(map(int,input().split()))
M = int(input())
x = list(map(int,input().split()))

for i in x:
    if i not in array:
        print('0')
    else:
    	print('1')
  1. 1로 만들기
    https://www.acmicpc.net/problem/1463

일단, 2와 3으로 나누어 떨어지지 않는 경우는 무조건 1을 빼야 하기 때문에 dp[i] = dp[i-1] + 1을 통해 횟수를 +1 추가 해준다. 그리고나서, dp[i]가 2 와 3으로 나누어 떨어지는 경우에는 1을 빼는 것 보다 나누어 떨어지는게 훨씬 이득이기 때문에 min(dp[i], dp[i//2]+1)을 통해 최소값을 선택하면 된다.

n = int(input())

dp = [0] * (n+1)

for i in range(2, n+1):
    dp[i] = dp[i-1] + 1

    if i % 2 == 0:
        dp[i] = min(dp[i], dp[i//2]+1)
    if i % 3 == 0:
        dp[i] = min(dp[i], dp[i//3] + 1)

print(dp[n])
  1. 커트라인
    https://www.acmicpc.net/problem/25305

정렬 후 꺼내기. 끝!

n,k=map(int,input().split())
score=list(map(int,input().split()))
score.sort(reverse=True)
print(score[k-1])

언제 실버4까지 올랐지..? 이번 방학에 골드까지 찍어보는게 목표다!
할 수 있고 해낼 것이다!

profile
느려도 내 것으로 만드는게 좋잖아?

0개의 댓글