목록Python/구현 (6)
Fantastic Chu's World
programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr # 2차원 리스트 90도 회전 def rotate_90_degree(a): n = len(a) # 행 길이 m = len(a[0]) # 열 길이 new_a = [[0]*n for _ in range(m)] for i in range(n): for j in range(m): new_a[j][n-1-i] = a[i][j] return new_a # 자물쇠 중앙이 전부 1인지 확인 def check(new_lock, n): for..
programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr def possible(answer): for x, y, a in answer: if a == 0..
programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr def solution(s): answer = len(s) # 1개 단위부터 압축 단위를 늘려가며 확인 for step in range(1,len(s)): com = "" count = 1 prev = s[0:step] # 앞에서 step만큼 문자열 추출 # step만큼 증가하며 이전 문자열과 비교 for i in range(step, len(s), step): # 이전..
programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr # 올바른 괄호 문자열인지 판단 def check(p): cnt = 0 for i in range(len(p)): if p[i] == '(': cnt += 1 else: if cnt == 0: # 올바르면 마지막에 0이 된다 return False # 중간에 0이 되면 X cnt -= 1 return True # 균형잡힌 괄호 문자열의 인덱스 반환 def balance_ind..

상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르막길의 크기를 구하려고 한다. 측정한 높이는 길이가 N인 수열로 나타낼 수 있다. 여기서 오르막길은 적어도 2개의 수로 이루어진 높이가 증가하는 부분 수열이다. 오르막길의 크기는 부분 수열의 첫 번째 숫자와 마지막 숫자의 차이이다. 예를 들어, 높이가 다음과 같은 길이 있다고 하자. 12 3 5 7 10 6 1 11. 이 길에는 2 개의 오르막길이 있다. 밑 줄로 표시된 부분 수열이 오르막길이다. 첫 번째 오르막길의 크기는 7이고, 두 번째 오르막길의 크기는 10이다. 높이가 12와 6인 곳은 오르막길에 속하지 않는다...

from itertools import combinations import math import sys n,m = map(int, sys.stdin.readline().split()) # 각 집 위치마다 모든 치킨집 거리 계산 후 최소값 반환 def get_distance(select, home): answer = 0 for hx, hy in home: ans_min = math.inf #무한값 넣기 for x, y in select: if abs(hx-x)+abs(hy-y) < ans_min: ans_min = abs(hx-x)+abs(hy-y) answer += ans_min return answer home, chi = [], [] # 집 위치, 치킨집 위치 for i in range(n): ali..