백준 2217: 로프 (파이썬) 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net # [BOJ] 2217. 로프 2022-11-26 N = int(input()) a = 0 # 전체 로프를 작은 것부터 정렬 L = sorted(list(int(input()) for _ in range(N))) for _ in range(N): # 가장 작은 값을 전체 로프의 수 만큼 곱해 보고 현재 최대값보다 크면 닶 변경 aa = L[0] * len(L) if aa > a: a = aa # 0번째 인덱스 값을 없앰으..
백준 10989: 수 정렬하기 3 (파이썬) 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net # [BOJ] 10989. 수 정렬하기 3 import sys N = int(sys.stdin.readline()) C = [0] * 10001 for i in range(N): C[int(sys.stdin.readline())] += 1 for i in range(len(C)): if C[i] != 0: for _ in range(C[i]): print(i) 메모리초과 싫다
백준 11652: 카드 (파이썬) 11652번: 카드 준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지 www.acmicpc.net # [BOJ] 11652. 카드 N = int(input()) D = {} L = [] for i in range(N): n = int(input()) if n in D: D[n] += 1 else: D[n] = 1 v = max(D.values()) for d in D: if D[d] == v: L.append(d) print(min(L)) 정렬 문제 정렬 안 쓰고 풀기
백준 1463. 1로 만들기 (파이썬) 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net import sys X = int(sys.stdin.readline()) L = [0] * (X + 1) for i in range(2, X + 1): if i % 2 == 0 and i % 3 == 0: L[i] = min(L[i - 1] + 1, L[i // 2] + 1, L[i // 3] + 1) elif i % 2 == 0: L[i] = min(L[i - 1] + 1, L[i // 2] + 1) elif i % 3 == 0: L[i] = min(L[i - 1] + 1, L[i // 3] + 1) else: L[i] = L[i - ..
백준 10026: 적록색약 (파이썬) 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net from collections import deque def bfs(): while q: a, b = q.popleft() for i in range(4): ni, nj = a + di[i], b + dj[i] if 0
3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net # [BOJ] 3986. 좋은 단어 2022-08-07 N = int(input()) ans = 0 for _ in range(N): S = [0]# S[-1] 인덱스 오류 피하기 위한 초기값 L = input() for l in L: if S[-1] == l:# 스택 가장 위와 일치하면 pop S.pop(-1) else: S.append(l) if len(S) == 1:# 초기값 0만 남아있으면 정답 ans += 1 print(ans) 생각보다 간단했던 스택 문제