본문 바로가기

[업무 지식]/Algorithm18

[array] 행렬의 덧셈 링크https://school.programmers.co.kr/learn/courses/30/lessons/12950 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1# numpy 활용import numpy as npdef solution(arr1, arr2): return (np.array(arr1) + np.array(arr2)).tolist()정답 2def solution(arr1, arr2): result = [] for i in range(len(arr1)): row = [] for j in range(len(arr1[0])): .. 2024. 12. 27.
[isdigit()] 문자열 다루기 기본 링크https://school.programmers.co.kr/learn/courses/30/lessons/12918 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1 def solution(s): return len(s) in (4, 6) and s.isdigit() 정답 2# 정규 표현식 사용import redef solution(s): return bool(re.fullmatch(r'\d{4}|\d{6}', s)) 정답 3# 예외 처리 활용 검증def solution(s): if len(s) not in (4, 6): return False try: int(s).. 2024. 12. 27.
[등차수열] 부족한 금액 계산하기 링크https://school.programmers.co.kr/learn/courses/30/lessons/82612 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1# 단순 반복문 사용def solution(price, money, count): total_cost = 0 for i in range(1, count + 1): total_cost += price * i return max(0, total_cost - money)정답 2# 등차수열 공식 활용def solution(price, money, count): total_cost = price * (coun.. 2024. 12. 27.
[key 인자] 문자역 내림차순으로 배치하기 링크https://school.programmers.co.kr/learn/courses/30/lessons/12917 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(s): return ''.join(sorted(s, reverse = True))정답 2def solution(s): s_list = list(s) s_list.sort(reverse = True) return ''.join(s_list)정답 3def solution(s): return ''.join(sorted(s, key = lambda x: -ord(x))) 첫 번째 방법은 가장.. 2024. 12. 26.
[zip] 내적 링크https://school.programmers.co.kr/learn/courses/30/lessons/70128 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(a, b): answer = [] for i in range(len(a)): answer.append(a[i] * b[i]) return sum(answer)정답 2def solution(a, b): return sum(x * y for x, y in zip(a, b)) 2024. 12. 26.
[문자 패턴] 수박수박수박수? 링크https://school.programmers.co.kr/learn/courses/30/lessons/12922 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(n): return ('수박' * (n//2)) + ('수' if n % 2 != 0 else '')정답 2def solution(n): str1 = '수' str2 = '박' water = '' for i in range(1, n + 1): if i % 2 != 0: water += str1 else: water .. 2024. 12. 24.
[//] 가운데 글자 가져오기 링크https://school.programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 정답 1def solution(s): idx = len(s) // 2 if len(s) % 2 == 0: return s[idx-1:idx+1] else: return s[idx]정답 2def solution(s): idx = len(s) // 2 return s[idx-1:idx+1] if len(s) % 2 == 0 else s[idx] 새롭게 이해한 내용`len(s) / 2`는 Python에서 항상 .. 2024. 12. 24.
[remove] 제일 작은 수 제거하기 링크https://school.programmers.co.kr/learn/courses/30/lessons/12935 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(arr): if len(arr) == 1: return [-1] arr.remove(min(arr)) return arr정답 2def solution(arr): if len(arr) == 1: return [-1] min_value = min(arr) return [x for x in arr if x != min_value] 2024. 12. 23.
[list comprehension] 음양 더하기 링크https://school.programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 정답 1def solution(absolutes, signs): answer = [] for val, bul in zip(absolutes, signs): if bul == True: val = val else: val = -val answer.append(val) return sum(answer) def solution(absolutes, s.. 2024. 12. 19.
[filter] 나누어 떨어지는 숫자 배열 링크https://school.programmers.co.kr/learn/courses/30/lessons/12910 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(arr, divisor): answer = [] for num in arr: if num % divisor == 0: answer.append(num) return sorted(answer) if answer else [-1]정답 2def solution(arr, divisor): answer = sorted([num for num in arr if num % divisor .. 2024. 12. 19.
[index] 서울에서 김서방 찾기 링크https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(seoul): index = seoul.index('Kim') return f'김서방은 {index}에 있다'정답 2def solution(seoul): index = [i for i, name in enumerate(seoul) if name == 'Kim'][0] return f'김서방은 {index}에 있다' 2024. 12. 18.
[콜라츠 추측] 링크https://school.programmers.co.kr/learn/courses/30/lessons/12943 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(num): count = 0 while num != 1: if count >= 500: return -1 if num % 2 == 0: num //= 2 else: num = num * 3 + 1 count += 1 return count정답 2def solution(num): .. 2024. 12. 18.
[range] 두 정수 사이의 합 링크https://school.programmers.co.kr/learn/courses/30/lessons/12912 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 정답 1# 반복문 사용def solution(a, b): result = 0 for x in range(min(a, b), max(a, b)+1): result += x return result정답 2# 직접 합계 계산def solution(a, b): return sum(range(min(a, b), max(a, b)+1)) 정답 3# if문 활용def solution(a, b): if a > .. 2024. 12. 17.
[하샤드 수] 숫자 x가 자신의 자릿수의 합으로 나누어 떨어지는 수 링크https://school.programmers.co.kr/learn/courses/30/lessons/12947 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1# 문자열 변환 후 자릿수 합 계산def solution(x): num = sum(int(digit) for digit in str(x)) return x % num == 0정답 2# 수학적 접근def solution(x): original = x digit = 0 while x > 0: digit += x % 10 x //= 10 return original % digit.. 2024. 12. 17.
[정수 n 순서 정렬] 정수 내림차순으로 배치하기 링크https://school.programmers.co.kr/learn/courses/30/lessons/12933 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제정답 1def solution(n): return int(''.join(sorted(str(n), reverse = True)))정답 2def solution(n): digits = list(map(int, str(n))) # 각 자릿수를 리스트로 변환 digits.sort(reverse=True) # 내림차순 정렬 return int(''.join(map(str, digits))) # 문자열로 합친 .. 2024. 12. 17.
[sqrt] 정수 제곱근 판별 링크https://school.programmers.co.kr/learn/courses/30/lessons/12934 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제정답 1# math.sqrt() 함수 사용# `sqrt_n.is_integer()`는 `sqrt_n`이 정수인지 확인import mathdef solution(n): sqrt_n = math.sqrt(n) if sqrt_n.is_integer(): return int((sqrt_n + 1) ** 2) else: return -1정답 2# 반복문을 통한 제곱수 확인def solution(n): .. 2024. 12. 16.
[str, int] 자연수 뒤집어 배열로 만들기 링크https://school.programmers.co.kr/learn/courses/30/lessons/12932 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제문제 설명자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.제한 조건n은 10,000,000,000이하인 자연수입니다.정답 1# 문자열 변환과 리스트 컴프리헨션 사용def solution(n): return [int(num) for num in str(n)[::-1]] 정답 2# 반복문 및 정수 나눗셈 수행def solution(n): res.. 2024. 12. 16.
[n개의 숫자] x만큼 간격이 있는 n개의 숫자 링크https://school.programmers.co.kr/learn/courses/30/lessons/12954?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제문제 설명함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.제한 조건x는 -10000000 이상, 10000000 이하인 정수입니다.n은 1000 이하인 자연수입니다.정답 1# 리스트 컴프리핸션 사용def solution(x, n): retu.. 2024. 12. 16.