2023. 1. 21. 15:11ㆍ개발/👾 PS
2023.01.09
# 막대기 - 백준 1094번
https://www.acmicpc.net/problem/1094
1094번: 막대기
지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대
www.acmicpc.net
X = int(input())
i = 6
cnt = 0
while True:
if X != 0:
if X >= 2**i:
X-= 2**i
cnt += 1
else:
i-=1
else:
break
print(cnt)
# 괄호 - 백준 9021번
스택 알고리즘
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
T = int(input())
stack = []
for i in range(T):
answer = "YES"
P = input()
for j in range(len(P)):
if P[j] == "(":
stack.append("(")
else:
if len(stack) > 0:
stack.pop()
else:
answer = "NO"
print("NO")
break
if len(stack) == 0 and answer != "NO":
print("YES")
elif len(stack) != 0:
print("NO")
stack.clear()
# 균형잡힌 세상 - 백준 4949번
스택 알고리즘
https://www.acmicpc.net/problem/4949
4949번: 균형잡힌 세상
하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다
www.acmicpc.net
while True:
sentence = input()
stack = []
List = ["(", ")", "[", "]"]
answer = "yes"
if sentence == ".":
break
else:
for i in range(len(sentence)):
if sentence[i] in List:
if sentence[i] == "(":
stack.append("(")
elif sentence[i] == ")":
if len(stack) > 0:
if stack[len(stack)-1] == "(":
stack.pop()
else:
answer = "no"
else:
answer = "no"
elif sentence[i] == "[":
stack.append("[")
elif sentence[i] == "]":
if len(stack) > 0:
if stack[len(stack)-1] == "[":
stack.pop()
else:
answer = "no"
else:
answer = "no"
elif sentence[i] == ".":
if len(stack) > 0:
answer = "no"
print(answer)
우왕 실버 달았다아아 히히
2023.01.10
# 다리 놓기 - 백준 1010번
https://www.acmicpc.net/problem/1010
1010번: 다리 놓기
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다.
www.acmicpc.net
import sys
import math
T = int(input())
for i in range(T):
N,M = map(int,sys.stdin.readline().split())
print(int(math.factorial(M)/(math.factorial(M-N) * math.factorial(N))))
import sys
import math
T = int(input())
for i in range(T):
N, M = map(int, sys.stdin.readline().split())
print int((math.factorial(M) / (math.factorial(M-N) * math.factorial(N))))
경우의 수 문제
조합으로 풀었다
+) 단계별로 풀기 1차원 배열까지
2023.01.11
# 셀프 넘버 - 백준 4673번
https://www.acmicpc.net/problem/4673
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
nonSelfNum = set()
def selfnum(n):
n = n + sum(map(int,str(n)))
return n
for i in range(1,10001):
nonSelfNum.add(selfnum(i))
for j in range(1,10001):
if j not in nonSelfNum:
print(j)
+) 단계별로 풀기 - python
2023.01.12
# 한수 - 백준 1065번
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
N = int(input())
numlist = []
def hansoo(num):
if num<100:
numlist.append(num)
else:
a = list(map(int,str(num)))
if a[0] + a[2] == 2 * a[1]:
numlist.append(num)
for i in range(1,N+1):
hansoo(i)
print(len(numlist))
+) 단계별로 풀기 - python
2023.01.13
+) 단계별로 풀기 - c언어
2023.01.14
+) 단계별로 풀기 - c언어
2023.01.15
# 설탕 배달 - 백준 2839번
https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
sugar = int(input())
n = sugar
bag = 0
if n % 5 == 0:
bag += n//5
else:
bag += n//5
n = n % 5
if n % 3 == 0:
bag += n//3
else:
while True:
if n % 3 == 0:
bag += n//3
break
else:
n += 5
bag -= 1
if n > sugar:
bag = -1
break
print(bag)
+) 단계별로 풀기 - c언어
'개발 > 👾 PS' 카테고리의 다른 글
[ DFS, BFS ] 완전 탐색 알고리즘 (0) | 2023.02.05 |
---|---|
알고리즘 기본 개념 (1) | 2023.02.05 |
[ 자료구조 ] 스택 큐 덱 (1) | 2023.01.19 |
1월 1주차 코딩일지 (1) | 2023.01.08 |
220926 (1) | 2022.09.27 |