본문 바로가기

~2023/프로그래머스

프로그래머스 '최댓값과 최솟값' 문제풀이(PYTHON) - Henry's Algorithm 안녕하세요 Henry입니다~ 오늘은 프로그래머스 Level 2 문제 중에 최댓값과 최솟값이라는 문제를 풀어보았습니다. 왠지 프로그래머스 Level 2 문제 중 가장 쉬운 난이도를 가진 문제일 것 같은데요, 저는 정렬과 문자열 인덱싱을 사용하여 문제를 풀었습니다. def solution(s: str) -> str: sorted_ls = sorted(s.split(' '), key=lambda x: int(x)) return sorted_ls[0] + ' ' + sorted_ls[-1] 아래는 문제 풀이 영상입니다. https://youtu.be/4IFhPzwipKA 더보기
프로그래머스 '최솟값 만들기' 문제풀이(PYTHON) - Henry's Algorithm 안녕하세요 Henry입니다~ 오늘은 프로그래머스의 Level 2 문제인 최솟값 만들기 문제를 풀어보았습니다. 이 문제의 핵심은 두 리스트의 값을 곱하여 최솟값이 나오게 하기 위해, 각 리스트의 최댓값과 최솟값을 각각 곱해주어야 한다는 아이디어에서 시작됩니다. 저는 sorted라는 파이썬의 내장함수를 사용하였습니다. 제가 문제를 푼 코드입니다. from typing import List def solution(A: List[int], B: List[int]) -> int: answer = 0 A = sorted(A) B = sorted(B, reverse=True) length_of_list = len(A) for i in range(length_of_list): answer += A[i]*B[i] ret.. 더보기
프로그래머스 '자연수 뒤집어 배열로 만들기' 문제풀이(PYTHON) - Henry's Algorithm 안녕하세요 Henry입니다~ 오늘은 프로그래머스 문제 중에 비교적 간단한 Level 1문제를 풀어보았습니다. 문자열을 다루는 방법과, list comprehension을 사용하면 문제를 깔끔하게 해결할 수 있으실 것 같은 문제입니다. 아래는 저의 코드입니다. def solution(n): answer = list(str(n)[::-1]) return [int(x) for x in answer] 아래는 문제 풀이 영상입니다. https://youtu.be/yww5zVu6Go4 - YouTube www.youtube.com 더보기
프로그래머스 '약수의 합' 문제풀이(PYTHON) - Henry's Algorithm 안녕하세요 Henry입니다~ 오늘도 코딩테스트 문제를 한 문제 풀어보았습니다. 프로그래머스의 Level 1 문제인데요, 약수의 합을 구하는 문제입니다. 문제를 풀면서 가장 중요했던 부분은, 약수인지 여부를 탐색하는 기준으로 해당 index 값의 제곱값이 대상 정수를 넘지 않는 범위에서만 확인을 해주어야 한다는 것입니다. 아래는 제가 문제를 푼 코드입니다. def solution(n): answer = 0 current_number = 1 while current_number*current_number < n: if n%current_number == 0: answer += current_number answer += n/current_number current_number += 1 if current_n.. 더보기
프로그래머스 '튜플' 문제풀이(PYTHON) - Henry's Algorithm 안녕하세요 Henry입니다~ 오늘은 2019 카카오 개발자 겨울 인턴십에 출제되었던 튜플이라는 문제를 풀어보았습니다. 프로그래머스의 Level 2 난이도의 문제인데요, 문자열을 얼마나 자유자재로 다룰 수 있는지에 대한 능력을 요구하는 문제였습니다. 아래는 저의 코드입니다. from typing import List def solution(s: str) -> List[int]: answer = [] s_list = s[2:-2].split('},{') sorted_list = sorted(s_list, key=lambda x: len(x)) for l in sorted_list: ls = l.split(',') answer.append(list(set(ls)-set(answer))[0]) return [i.. 더보기
프로그래머스 '평균 구하기' 문제풀이(PYTHON) - Henry's Algorithm 안녕하세요 Henry입니다~ 오늘도 코딩테스트 문제를 한문제 풀어보았습니다. 오늘은 프로그래머스의 Level 1 난이도의 문제인 평균 구하기 문제를 풀어보았습니다. 정답률이 80%가 넘는 만큼 간단하게 푸실 수 있는 문제이니, 가벼운 마음으로 접근하셔도 좋을 것 같습니다. 아래는 저의 코드입니다. from typing import List def solution(arr: List[int]) -> float: return sum(arr)/len(arr) 문제 풀이 영상입니다. https://youtu.be/1vrqVsWgoeA 더보기
프로그래머스 '올바른 괄호' 문제풀이(PYTHON) - Henry's Algorithm 안녕하세요 Henry 입니다 오늘은 올바른 괄호 라는 문제를 풀어보았습니다. 프로그래머스에서 Level 별로 문제 난이도가 정해져 있는데, 이 문제는 Level 2에 속해있는 문제입니다. 저는 문자를 숫자로 치환한 뒤에 덧셈 연산을 통해 문제를 풀어보았습니다. 아래는 저의 코드입니다. str_dict = {"(": 1, ")": -1} def solution(s): current_value = 0 for i in s: current_value += str_dict[i] if current_value < 0: return False return True if current_value == 0 else False 해당 문제에 대한 강의입니다. https://youtu.be/GJuDfJlrbJI 더보기
프로그래머스 '자릿수 더하기' 문제풀이(PYTHON) - Henry's Algorithm 안녕하세요 Henry 입니다 오늘은 자릿수 더하기 라는 문제를 풀어보았습니다. 프로그래머스에서 Level 별로 문제 난이도가 정해져 있는데, 이 문제는 Level 1에 속해있는 문제입니다. 숫자 -> 문자로 치환하여 index 접근을 한다면, 자릿수에 조금 더 편하게 접근이 가능하실 것으로 보입니다.ㅎㅎ 아래는 저의 코드입니다. def solution(n): str_n = str(n) current_value = 0 for s in str_n: current_value += int(s) return current_value 문제에 대한 강의 영상입니다. https://youtu.be/PDxkY0QIYlI 더보기