python 80

[백준] 2108 통계학, python

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net import sys; input = sys.stdin.readline N = int(input()) # counting sort count = [0] * 8001 total = 0 for i in range(N): num = int(input()) count[num + 4000] += 1 total += num index = 0 mid = 0 mid_chk = False min_val = 0 min_chk = ..

STUDY/Algorithm 2021.07.11

[백준] 16234 인구 이동 python(pypy3)

https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net import sys from collections import deque def bfs(r, c): visit[r][c] = 1 q = deque() q.append((r, c)) ret = [(r,c)] while q: y, x = q.popleft() for i in range(4): yy = y + dy[i] xx = x + dx[i] # 주어진 나라의 크기를 넘는 경우 if ..

STUDY/Algorithm 2021.07.08

[백준] 15686 치킨 배달, python

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net import sys; sys.stdin.readline from itertools import combinations N, M = map(int, input().split()) _map = [] house = [] restaurant = [] for i in range(N): tmp = list(map(int, input().split())) _map.append(tmp) f..

STUDY/Algorithm 2021.07.06

[백준] 11054 가장 긴 바이토닉 부분 수열, python

https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net N = int(input()) A = list(map(int, input().split())) dp_asc = [0 for _ in range(N)] dp_desc = [0 for _ in range(N)] for i in range(1, N): for j in range(0, i): if A[j] < A[i]: dp_asc[i] = max(dp_asc[i], dp_asc[j] + 1) for i in range(N..

STUDY/Algorithm 2021.07.05

[백준] 1780 종이의 개수, python

https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. www.acmicpc.net import sys input = sys.stdin.readline def devide(r, c, size): global m1, z, p1 if check(r, c, size): if paper[r][c] == -1: m1 += 1 elif paper[r][c] == 0: z += 1 else: p1 += 1 return # 분할 for i in range(r, r + size, si..

STUDY/Algorithm 2021.07.04

[프로그래머스] 오픈채팅방, 2019 KAKAO BLIND RECRUITMENT, python

https://programmers.co.kr/learn/courses/30/lessons/42888?language=python3 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr def solution(record): answer = [] answer_tmp = [] user_dict = {} for r in record: tmp = r.split() # answer_tmp = (uid, command) if r[0] == 'C' or r[0] == 'E': user_dict[tmp[1]] = tmp[2] ..

STUDY/Algorithm 2021.06.21

[백준] 1992 쿼드트리 python

https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net import sys; input = sys.stdin.readline def divNConq(size, r, c): global answer if size == 1: answer += str(matrix[r][c]) return if chk_arr(size, r, c, matrix[r][c]): answer += str(matrix[r][c]) return half = size // ..

STUDY/Algorithm 2021.05.18

[백준] 14500 테트로미노 python

https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net import sys; input = sys.stdin.readline def sum_arr(array): ret = 0 for i in range(N): for j in range(M): ret += array[i][j] return ret def backtrack(arr, total=0, ind=0): global max_val if ind == 3: if max_val < total: max_..

STUDY/Algorithm 2021.05.18

[백준] 17144 미세먼지 안녕! python

https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net import sys; input = sys.stdin.readline R, C, T = map(int, input().split()) room = [] fresher = [] for i in range(R): tmp = list(map(int, input().split())) room.append(tmp) if not fresher: for j in range(C): if tmp[j] == -1..

STUDY/Algorithm 2021.05.18

[백준] 1874 스택수열 python

www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net n = int(input()) numbers = [int(input()) for _ in range(n)] stack = [] result_list = [] num = 1 result = 0 while num n: if stack[-1] == numbers[result]: result += 1 stack.pop() result_l..

STUDY/Algorithm 2021.04.28