프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr주어진 정수들을 이어 붙였을 때 만들 수 있는 가장 큰 수를 문자열로 반환하는 문제입니다.핵심은 숫자 자체의 크기가 아니라, 두 숫자를 어떤 순서로 붙였을 때 더 큰 문자열이 되는지를 기준으로 정렬하는 것입니다.1. 나의 풀이from functools import cmp_to_keydef compare(a, b): if a + b > b + a: return -1 elif a + b 이 풀이에서는 먼저 숫자를 문자열로 변환했습니다.숫자를 이어 붙여 비교해야 하므로, 정수 덧셈이 아니라 문자열 결합이 필요하기 때문입니다.정렬 기준은 compare..
본 내용은 'Manifest Android Interview'를 읽고 개인적으로 개념 복기를 위한 설명, 헷갈리거나 어려웠던 점 등을 책 외부의 공식문서등의 자료로 정리한 내용입니다. 안드로이드의 Intent는 컴포넌트 사이에서 작업을 요청하거나 데이터를 전달할 때 사용하는 메시지 객체입니다. 이번 글에서는 명시적 인텐트, 암시적 인텐트, 인텐트 필터, PendingIntent의 차이를 중심으로 정리합니다.1. 개념 정리IntentIntent는 수행할 작업을 표현하는 객체입니다.Activity를 실행하거나, Broadcast를 보내거나, Service를 시작할 때 사용할 수 있습니다. 또한 putExtra()를 통해 컴포넌트 사이에 데이터를 전달할 수 있습니다.val intent = Intent(this..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문자열 배열을 특정 인덱스의 문자를 기준으로 정렬하는 문제입니다. 핵심은 1차 정렬 기준은 n번째 문자, 2차 정렬 기준은 문자열 전체의 사전순으로 두는 것입니다.1. 나의 풀이def solution(strings, n): strings.sort(key=lambda x: (x[n], x)) return stringskey에 튜플을 사용하여 정렬 기준을 두 개로 지정했습니다.첫 번째 기준은 x[n]으로, 각 문자열의 n번째 문자입니다. 두 번째 기준은 x로, n번째 문자가 같은 경우 문자열 전체를 사전순으로 비교하도록 했습니다.2. 오늘 배운 점 및 복기..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krH-Index는 h번 이상 인용된 논문이 h편 이상이 되는 h의 최댓값을 찾는 문제입니다. 핵심은 인용 횟수를 정렬한 뒤, 가능한 h 값을 논문의 개수 기준으로 줄여가며 검사하는 것입니다.1. 나의 풀이 def solution(citations): citations = sorted(citations, reverse=True) h_index = len(citations) while h_index > 0: if citations[h_index - 1] >= h_index: break h_index -= 1 ..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr서로 다른 인덱스의 두 수를 뽑아 만들 수 있는 모든 합을 구한 뒤, 중복을 제거하고 오름차순으로 정렬하는 문제입니다. 핵심은 combinations, set, sorted를 순서대로 연결하는 것입니다.1. 나의 풀이from itertools import combinationsdef get_pair_sums(numbers): return set(map(sum, combinations(numbers, 2)))def solution(numbers): pair_sums = get_pair_sums(numbers) return sorted(pair_sums..
프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr연산자 +, -, *의 우선순위를 바꿔가며 수식을 계산하고, 그 결과의 절댓값 중 최댓값을 구하는 문제입니다.핵심은 3! = 6가지 우선순위를 모두 탐색하고, 각 우선순위에 맞게 수식을 직접 계산하는 것입니다.1. 나의 풀이import refrom itertools import permutationsdef apply_operator(tokens, op): result = [] i = 0 while i 2. 오늘 배운 점 및 복기 노트완전탐색 가능성 판단연산자는 +, -, * 세 개뿐이므로 가능한 우선순위는 \(3! = 6\)가지입니다.수식 길이도..