코딩테스트

    [코딩테스트] 프로그래머스 2개 이하로 다른 비트 파이썬(Python)

    https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import deque def solution(numbers): result = [] for number in numbers: result.append(f(number)) return result def f(x): if x % 2 == 0: return x+1 else: cur = deque(bin(x)[2:]) nex = deque(bin(x+1)[2:]) if l..

    [코딩테스트] 프로그래머스 숫자 변환하기 파이썬(Python)

    https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from collections import defaultdict, deque def solution(x, y, n): if x == y: return 0 d = defaultdict(lambda :0) q = deque([x]) while q: x= q.popleft() for next_x in [x+n, x*2, x*3]: if next_x > y: continue if d[next_x] > ..

    [코딩테스트] 프로그래머스 예상 대진표 파이썬(Python)

    https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n,a,b): round = 0 while a != b: a -= a // 2 b -= b // 2 round += 1 return round 문제에서 , ... 참가자끼리 경기를 하고 1번부터 배정을 받는다고 합니다. 은 이긴사람이 1번, 은 2번 .. 으로 배정을 받습니다. 정리를 해보자면 참가자 부여번호 1 1 2 1 3 2 4 2 5 3 6 3 7 4 8 4 누가 이..

    [코딩테스트] 백준 차이를 최대로 파이썬(Python)

    https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net from itertools import permutations n = int(input()) array = list(map(int, input().split())) max_num = 0 for A in permutations(array, n): sum_value = 0 for i in range(1, n): sum_value += abs(A[i]-A[i-1]) max_num = max(max_num, sum_v..

    [코딩테스트] 프로그래머스 [3차] 파일명 정렬 파이썬(Python)

    https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import re def solution(files): for i in range(len(files)): file = files[i] numbers= re.findall('\d+', file) number = numbers[0] s = file.index(number) e = len(number) split_file = [file[:s], file[s:s+e], file[s+e:]] files[i..

    [코딩테스트] 프로그래머스 땅따먹기 파이썬(Python)

    https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 다이나믹 프로그래밍과 그리디알고리즘을 이용하여 문제를 해결했습니다. 풀이를 위한 기본적인 아이디어는 이전 행 중 현재 자기 자신의 인덱스를 제외한 최댓값을 현재값에 더하기 입니다. 저의 풀이방법은 아래와 같고, 저의 풀이방법을 개선한 풀이방법들을 가지고 왔습니다. 첫번째 풀이 def solution(land): for i in range(1, len(land)): for j in ran..