목록 code review (147)
KEEP GOING
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net from collections import deque import sys sys.stdin = open('in3.txt', 'r') n, l, r = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(n)] dx = [1,0,-1,0] dy = [0,1,0,-1] def process(x..
https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net 1. 시간초과 발생한 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(n)] time, x, y = map(int, input().split()) dx = [1, 0, -1, 0] dy..
https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 1. 정답인 코드 from bisect import bisect_left, bisect_right def count_by_value(a, left_value, right_value): left_idx = bisect_left(a, left_value) right_idx = bisect_right(a, right_value) return right_idx - left_idx array = [[] for _ in range(10001)] reversed_array = [[] for _ in range(10001)] def solution(word..
N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 x가 등장하는 횟수를 계산하세요. 단, 이 문제의 시간 복잡도 O(logN)으로 알고리즘을 설계하지 않으면 '시간 초과' 판정을 받습니다. 입력 예시 7 2 1 1 2 2 2 2 3 출력 예시 4 1. 정답 코드 import sys def countValue(arr, target): first = 0 last = len(arr)-1 start = findFirstIndex(arr, target, first, last) if start == None: return 0 end = findLastIndex(arr, target, first, last) return end - start + 1 # 가장 맨 왼쪽에 있는 원소 인..
https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 1. 테스트케이스에서 실패한 코드 (정확성 33.3) def solution(N, stages): answer = [] stages.sort() for i in range(1,N+1): count = 0 numOfPlayers = 0 while stages: numOfPlayers = max(numOfPlayers, len(stages)) if i == stag..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. 성공한 코드 from itertools import combinations import sys n, m = map(int, input().split()) board = [[] for _ in range(n)] chickenStore = [] house = [] for i in range(n): board[i] = list(map(int, input().split())) ..
문제 철수는 온라인으로 컴퓨터공학강의를 듣고 있다. 이때 각 온라인강의는 선수강의가 있을 수 있는데, 선수 강의가 있는 강의는 선수 강의를 먼저. 들어야만 해당강의를 들을 수 있다. 예를들어 '알고리즘’ 강의의 선수 강의로 '자료구조'가 존재한다면, ‘자료구조를 들은 이후에 ‘알고리즘' 강의를 들을 수 있다. 철수는 총 N개의 강의를 듣고자 한다. 모든 강의는 1번부터 N번까지의 번호를 가진다. 또한 동시에 여러 개의 강의를 들을 수 있다고 가정한다. 예를 들어 N=3일 때, 3번강의의 선수 강의로 1번과 2번강의가 있고, 1번과 2번강의는 선수강의가 없다고 가정하자. 그리고 각 강의에 대하여 강의 시간이 다음과 같다고 가정하자. 1번 강의: 30시간 2번 강의: 20시간 3번 강의: 40시간 이 경우 ..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 1. 정답인 코드 def solution(s): answer = 1001 n = len(s) # 테스트케이스 5번 : 문자열 s의 길이가 1일때 처리 if n == 1: return 1 for unit in range(1, n//2+1): # print('unit=', unit) compress = "" pre = s[0:unit] # print('pre..