[문제] 이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요. [답안] def solution(bin1, bin2): return bin(int(bin1, 2) + int (bin2, 2)).replace('0b', '') [풀이] 2진수 값을 bin() 함수를 통하여 10진수로 변환하고, 그 값을 더해준다. 다시 bin() 함수를 통하여 2진수로 변환을 한 뒤에 이진수를 의미하는 '0b' 를 빈스트링으로 치환하여 이진수만 출력하여 답을 구했다 [문제 풀어보기] https://school.programmers.co.kr/learn/courses/30/lessons/120885
[문제] 문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요. [답안] import re def solution(my_string): return sum([int(i) for i in re.split('[a-z,A-Z]', my_string) if i.isdigit() == True]) [풀이] re 모듈을 사용하여 정규식으로 문자를 분리해내었다. 결과를 보니 문자는 "" 빈 스트링으로 값이 분리가 되어서 if 문을 사용하여 자연수 값만 추출해내고 추출된 값을 int로 형변환 하였다. 마지막으로 sum() 함수를 사용하여 구해진 값들을 더하여 결과값을..
[문제] 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. [답안] def solution(s): return "".join(sorted([v for v in s if s.count(v) == 1])) [풀이] 문자열 s의 for문을 돌아 s의 카운트를 구하고 카운트가 1인 것들의 값을 배열로 만든다. 배열을 sorted() 함수를 통해 정렬하고 "".join()을 사용하여 문자열로 결과값을 반환하였다. [문제 풀어보기] https://school.programmers.co.kr/learn/courses/30/lessons/120896
[문제] 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. [답안] def solution(emergency): answer = sorted(emergency, reverse=True) return [answer.index(i) + 1 for i in emergency] [풀이] 응급도가 높은 순서대로 정렬하여 answer을 선언하였다. 매개변수 emergency의 for문을 돌면서 answer에 저장된 index를 찾은 뒤 + 1 을 하여 답을 구하였다. +1 을 하는 이유는 index는 0부터 시작하기 때문에, ..
[문제] 정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요. [답안] def solution(array, n): gap = [] array.sort() for i in array: gap.append(abs(n-i)) answer = [array[gap.index(min(gap))]] return min(answer) if len(answer) > 1 else answer[0] [풀이] array를 오름차순으로 sort하고 array를 돌면서 n - i 의 절댓값을 구한 뒤 gap list에 추가한다. 답은 array안의 gap이 가장 작은 값의 인덱스를 가진 값이다. 만약 array: [..
[문제] 1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요. [답안] def solution(i, j, k): return sum([str(i).count(str(k)) for i in range(i, j+1)]) [풀이] 시작값 i, 마지막값 j+1 로 for 문을 실행하고 i의 값을 string으로 변환한 뒤에 string으로 변환한 k의 값을 카운트 하여 값을 구한다. 값이 없는 경우에는 0, 있으면 그 수만큼 카운트 되기 때문에 sum() 함수를 이용하여 배열의 값들을 더하여 답을 구하였다. def solution(i,..