프로그래머스 69

[프로그래머스] 행렬 테두리 회전하기 python, 2021 Dev-Matching: 웹 백엔드 개발자(상반기)

programmers.co.kr/learn/courses/30/lessons/77485?language=python3 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr def solution(rows, columns, queries): answer = [] min_val = rows * columns matrix = [] old_val = 0 for r in range(rows): tmp = list(range(old_val + 1, old_val + columns + 1)) old_val +..

STUDY/Algorithm 2021.05.04

[프로그래머스] 다단계 칫솔 판매 python, 2021 Dev-Matching: 웹 백엔드 개발자(상반기)

https://programmers.co.kr/learn/courses/30/lessons/77486?language=python3 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr def solution(enroll, referral, seller, amount): answer = [0] * (len(enroll)) graph_dict = dict(zip(enroll,range(len(enroll)))) for i in range(len(seller)): man = seller[i] price = amo..

STUDY/Algorithm 2021.05.04

[프로그래머스] LEVEL3 정수삼각형, python

programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr def solution(triangle): dp = [[0] * i for i in range(1, len(triangle) + 1)] dp[0][0] = triangle[0][0] for i in range(1, len(dp)): for j in range(len(dp[i])): if j == 0: dp[i][j] = triangle[i][j] + dp[i - 1][j] elif j == len(dp[i]) - 1: dp[i][j] = triangl..

STUDY/Algorithm 2021.04.22

[프로그래머스] LEVEL2 문자열 압축, python

programmers.co.kr/learn/courses/30/lessons/60057# 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr def solution(s): len_s = len(s) answer = len_s if len_s == 1: return answer cnt = 1 while cnt < len_s //2 + 1: i = 0 zip_val = 0 zip_string = '' while i < len_s: tmp_s = s[i:i + cnt] if tmp_s == s[i + cnt:i..

STUDY/Algorithm 2021.04.04

[프로그래머스] LEVEL2 삼각 달팽이, python, C

programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr def solution(n): n_list = [[0] * i for i in range(1, 1 + n)] max_val = (n ** 2 + n) // 2 cnt = 0 x, y = 0, 0 direction = [(1, 0), (0, 1), (-1, -1)] dir_num = 0 while cnt < max_val: cnt += 1 n_list[x][y] = cnt dx = x..

STUDY/Algorithm 2021.04.04

[프로그래머스] 최솟값만들기 python, C

programmers.co.kr/learn/courses/30/lessons/12941 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr def solution(A,B): answer = 0 A.sort() B.sort() for i in range(len(A)): answer += A[i]*B[len(B)-1-i] return answer #include #include #include // A_len은 배열 A의 길이입니다. // B_len은 배열 B의 길이입니다. int compare..

STUDY/Algorithm 2021.04.02

[프로그래머스] 3진법 뒤집기, python, C

programmers.co.kr/learn/courses/30/lessons/68935?language=python3 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr def solution(n): answer = int(three(n), 3) return answer def three(number): ans = '' while number > 0: ans += str(number % 3) number //= 3 if 0 < number < 3: ans += str..

STUDY/Algorithm 2021.04.02

[프로그래머스] 두개 뽑아서 더하기 python, C

programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr from itertools import combinations def solution(numbers): answer = [] numbers_set=set() for i in combinations(numbers,2): numbers_set.add(sum(i)) answer= sorted(list(numbers_set)) retu..

STUDY/Algorithm 2021.04.02

[프로그래머스] [3차] n진수 게임 python

programmers.co.kr/learn/courses/30/lessons/17687# 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr from math import sqrt def solution(n, t, m, p): answer = '' order = 0 break_chk = False number, length = 0, 1 n_number = '0' while True: for i in range(length): order = (order + 1) % m if order == p%m:..

STUDY/Algorithm 2021.04.01

[프로그래머스] [3차] 파일명 정렬 python

테스트 준비로 있어서 오랜만에 프로그래머스를 풀었다. programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr def solution(files): answer = [] # 1 files_tmp = [] for i in range(len(files)): tmp = files[i] ns, ne = 0, 0 # number의 첫부분과 끝부분 찾음 for j in range(len(tmp)): if tmp[j].isdigit(..

STUDY/Algorithm 2021.04.01