본문 바로가기

백준 문제 풀이 및 피드백

(33)
2023.01.23 파도반 수열 백준[파이썬] https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net import sys input = sys.stdin.readline n = int(input().strip()) num_list = [int(input().strip()) for _ in range(n)] max_num = max(num_list) answer_list = [0,1,1] + ([0] * (max_num-2)) for num in num_list: if answer_list[num] ==..
2023.01.20 집합 백준[파이썬] https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net import sys input = sys.stdin.readline n = int(input().strip()) s = set() for _ in range(n): command = input().split() if len(command) == 1: if command[0] == 'all': s = set(range(1,21,1)) else: s = set() else: (command[0] == 'add' and s.add(int..
2023.01.20 마인크래프트 백준[파이썬] https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 이번 문제는 진짜 계속 시간 초과 나서 머리 잡고 있다가 pypy로 돌리니 시간초과 안나서 해결 된... 마음에 안드는 풀이법 밖에 없다. 이후 찾아 보니깐 dict로 풀거나 다른걸로 풀던데 나중에 정리 해봐야겠다. import sys input = sys.stdin.readline n, m , inven = map(int,input().split()) max_high = 0 land = [] ..
2023.01.19 연결요소의 개수 백준[파이썬] https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net import sys from collections import defaultdict input = sys.stdin.readline def find_area(n): check = [0] * (n+1) answer = n for i in graph: if check[i-1] != 0: continue visited = [] discove..
2023.01.19 비밀번호 찾기 백준[파이썬] https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net import sys input = sys.stdin.readline n,m = map(int,input().split()) dicts = {} for _ in range(n): name,password = input().split() dicts[name] = password for _ in range(m): calls = input().strip() print(dic..
2023.01.19 ATM 백준[파이썬] https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net import sys input = sys.stdin.readline n = int(input().strip()) m = list(map(int,input().split())) m = sorted(m) sums = 0 for i in m: sums += i * n n -= 1 print(sums) 문제를 보고 정렬을 해서 가장 작은 수부터 n, n-1,..1 번씩 들어간다는 것을 알아서 sorted로 정렬하고 곱해서 풀었다. 보..
2023.01.19 적록색약 백준[파이썬] https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net import sys from copy import deepcopy input = sys.stdin.readline def find_area(graph,check): counter = 0 graphs = deepcopy(graph) for i in range(n): for j in range(n): if graphs[i][j] == 0 : continue discorverd = [[i,j]]..
2023.01.18 최소힙 백준[파이썬] https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net import sys from heapq import heappop, heappush input = sys.stdin.readline heap = [] n = int(input().strip()) for i in range(n): a = int(input().strip()) if a == 0: if heap: print(heappop(heap)) else: print(0) els..