목록 code review/implementation (20)
KEEP GOING
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..
f(0) = 1, f(1) = 1 f(n) = f(n-1)+f(n-2) 위와 같은 조건을 만족하는 피보나치 수열이 있다고 가정하자. 위 공식을 통해 음수 또한 피보나치 수열을 만들 수 있다. 예를들어, f(1) = f(0) + f(-1) f(-1) = f(1) - f(0) = 1을 구할 수 있다. 입력된 숫자 번호에 해당하는 피보나치 수열을 문자열로 리턴하는 음수 피보나치 수열을 구현하라. # 메모이제이션 사용 #타겟 원소 lst = [-5,-1,-10,-3,5,10,2] box = [0]*100 box[1] = 1 minusBox = [0]*100 minusBox[-1] = 1 def fibo(n): for i in range(2, n+1): if box[i] != 0: continue else: bo..
https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다. import sys a,b = map(int, sys.stdin.readline().split()) cnt=0 while True: if b%10==1: b=..
https://www.acmicpc.net/problem/4396 4396번: 지뢰 찾기 첫 번째 줄에는 10보다 작거나 같은 양의 정수 n이 입력된다. 다음 n개의 줄은 지뢰의 위치를 나타낸다. 각각의 줄은 n개의 문자를 사용하여 한 행을 나타낸다. 온점(.)은 지뢰가 없는 지점이며 별 www.acmicpc.net 1. 코드 개선 # 지뢰찾기 n = int(input()) answerBoard = [list(input()) for _ in range(n)] checkBoard = [list(input()) for _ in range(n)] result = [] jiroi = False # 좌표 설정 dx = [1,0,-1,0,1,-1,1,-1] dy = [0,1,0,-1,-1,1,1,-1] for i ..