본문 바로가기

전체 글

(171)
[BOJ] [Python] 1935번 : 후위 표기식2 전형적인 스택 문제가 아닐까? ABC*+DE/-을 예로 살펴보자. 앞에서부터 하나씩 값을 넣다가, 연산자가 들어오면 연산을 한다. [1, 2, 3] [1, 6] [7] [7, 4, 5] [7, 0.8] [6.2] pop을 이용해서 2개의 원소를 뽑고, push[append]를 이용해서 연산 결과를 넣어준다. num = int(input()) string = input() check = ["*", "+", "/", "-"] dic = {} li = [] for s in string: if s in check: first = li.pop() second = li.pop() if s == "+": li.append(second + first) elif s == "-": li.append(second - fir..
[BOJ] [Python] 1158번 : 요세푸스 문제 n, k = map(int, input().split()) li = [num for num in range(1, n + 1)] result = [] for _ in range(n): i = k - 1 length = len(li) - 1 if i < length: result.append(str(li[i])) li = li[i + 1:] + li[:i] elif i == length: result.append(str(li[i])) li = li[:i] else: if not k % len(li): result.append(str(li[-1])) li.pop() else: i = (k % len(li)) - 1 result.append(str(li[i])) li = li[i + 1:] + li[:i] pr..
[BOJ] [Python] 7568번 : 덩치 모든 사람의 덩치 등수는 1에서 시작한다. 다른 사람보다 몸무게와 키의 값이 모두 작다면 둥수에 +1을 해준다. 이 문제는 N의 크기가 작기 때문에, 2중 반복문을 돌려된다. num = int(input()) kg_li = [] cm_li = [] result = [1] * num for _ in range(num): kg, cm = map(int, input().split()) kg_li.append(kg) cm_li.append(cm) for i in range(num): for j in range(num): if kg_li[i] < kg_li[j] and cm_li[i] < cm_li[j]: result[i] += 1 print(*result)