프로그래머스 118

프로그래머스(Python) 12949번 행렬의 곱셈 풀이

Python으로 구현한 12949번 행렬의 곱셈 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr def solution(arr1, arr2) : row = len(arr1) col = len(arr2[0]) answer = [[0] * col for _ in range(row)] for i in range(row) : for j in range(col) : for k in r..

프로그래머스(Python) 12951번 JadenCase 문자열 만들기 풀이

Python으로 구현한 12951번 JadenCase 문자열 만들기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고 programmers.co.kr def solution(s) : answer = '' for i in range(len(s)) : if i == 0 : if s[i].isnumeric() : answer += s[i] continue else : answer += s[i..

프로그래머스(Python) 12953번 N개의 최소공배수 풀이

Python으로 구현한 12953번 N개의 최소공배수 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr def check(arr, target) : for i in range(len(arr)) : if target % arr[i] != 0 : return False return True def solution(arr) : value = max(arr)..

프로그래머스(Python) 42839번 소수 찾기 풀이

Python으로 구현한 42839번 소수 찾기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr from itertools import permutations import math def is_prime(x) : for i in range(2, int(math.sqrt(x) + 1)) : if x % i == 0 : return False return True def soluti..

프로그래머스(Python) 42746번 가장 큰 수 풀이

Python으로 구현한 42746번 가장 큰 수 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr def solution(numbers) : answer = '' numbers = list(map(str, numbers)) numbers = (sorted(numbers, key=lambda x: x * 5, reverse=True..

프로그래머스(Python) 42587번 프린터 풀이

Python으로 구현한 42587번 프린터 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr def solution(priorities, location) : for i in range(len(priorities)) : priorities[i] = (i, priorities[i]) # 번호, 중요도 cnt = 0 while True : value = priorities.pop(0) flag = T..

프로그래머스(Python) 64065번 튜플 풀이

Python으로 구현한 64065번 튜플 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr def solution(s) : answer = [] s = s[2:-2] s = s.split("},{") s.sort(key=len) for i in s : data = i.split(",") for value in data : if int(valu..

프로그래머스(Python) 43165번 타겟 넘버 풀이

Python으로 구현한 43165번 타겟 넘버 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr def solution(numbers, target) : tree = [0] # 초기 값 for i in range(len(numbers)) : value = [] for j in range(len(tree)) : value.append(tree[j] - numbers[i])..

프로그래머스(Python) 42586번 기능개발 풀이

Python으로 구현한 42586번 기능개발 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr def solution(progresses, speeds) : answer = [] index = 0 while True : for i in range(len(progresses)) : progresses[i] += speeds[i] cnt = 0 for i in range(index, len..

프로그래머스(Python) 42888번 오픈채팅방 풀이

Python으로 구현한 42888번 오픈채팅방 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr def solution(record) : answer = [] info = {} value = [] for i in range(len(record)) : state = list(record[i].split(" ")) if len(state) >= 3 : # Enter 혹은 Change일 경우 if ..