2018 카카오 블라인드 채용 def solution(dartResult): scores = [] dartResult = dartResult.replace('10', 'k') for x in dartResult: if x.isdecimal(): scores.append(int(x)) elif x.isalpha(): if x == 'D': scores[-1] **= 2 elif x == 'T': scores[-1] **= 3 elif x == 'k': scores.append(10) else: if x == '*': scores[-2:] = [x*2 for x in scores[-2:]] elif x == '#': scores[-1] *= -1 return sum(scores) 주어진 조건을 잘 이해하면 ..
자바스크립트를 사용하면 순열과 조합을 구하는 코드를 직접 작성해야 하는데요, 파이썬을 사용하면 모듈을 통해 쉽게 구할 수 있어서 상당히 편리합니다. 이번에는 파이썬에서 순열과 조합을 쉽게 구할 수 있도록 도와주는 itertools 모듈에 대해 알아보겠습니다. 순열 permutations(iterable, r) from itertools import permutations a = [1, 2, 3, 4] permus = list(permutations(a, 2)) permus # [(1, 2), (1, 3), (1, 4), # (2, 1), (2, 3), (2, 4), # (3, 1), (3, 2), (3, 4), # (4, 1), (4, 2), (4, 3)] itertools 모듈의 permutations..
✅ 코드 from itertools import combinations 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 solution(nums): answer = 0 combis = list(combinations(nums, 3)) for combi in combis: if is_prime(sum(combi)): answer += 1 return answer 주어진 배열에서 3개의 수를 조합해 더하면 소수가 되는 케이스의 수를 구해야 합니다. 다행스럽게도(?) 파이썬의 itertools 모듈을 사용하면 수들의 조합을 구할 수 있습니다. 소수 여부를..
문자열 함수 중에 해당 문자열이 숫자로 구성됐는지 여부를 판별해주는 함수들이 있습니다. isdecimal, isdigit, isnumeric 함수들인데요, 각각의 함수에 대해 알아보겠습니다. isdecimal() numbers = ['123', '0.5', '-7', '½', '3²', '77%'] for i in numbers: print(i, i.isdecimal()) # 123 True # 0.5 False # -7 False # ½ False # 3² False # 77% False 문자열을 구성하는 각 원소가 0과 9 사이의 정수(int)로 변환 가능한지 여부만을 판별합니다. 숫자로 보이더라도 정수화가 불가능하면 False를 리턴합니다. isdigit() numbers = ['123', '0.5..
✅ 코드 def solution(arr): answer = [] for num in arr: if answer[-1:] == [num]: continue answer.append(num) return answer 빈 배열을 슬라이싱해도 IndexError가 발생하지 않습니다. 반대로 특정 위치의 값을 인덱싱 하면 IndexError가 발생합니다.
알고리즘 문제를 풀면서 년, 월, 일 정보를 바탕으로 해당 날짜의 요일을 구해야 했습니다. 다행히도 datetime 모듈의 date 클래스를 사용해서 문제를 해결할 수 있었습니다. 파이썬의 datetime 모듈을 사용하면 날짜와 시간 관련 데이터를 의도대로 조작할 수 있습니다. 대략적인 모듈 사용법을 숙지하고 있으면 도움이 될 것 같아 문제를 해결한 과정을 정리해보겠습니다. import datetime as dt 우선 datetime 모듈을 불러옵니다. dt.date(year, month, day) date 클래스를 사용해서 인스턴스를 생성하려면 3가지 인자값(year, month, day)을 전달해야 합니다. dt.datetime.now() # datetime.datetime(2023, 6, 1, 13..
내 마음대로 파이썬 - map 내장함수 사용하기 내 마음대로 파이썬 - zip 내장함수 사용하기 이번 정리에서는 파이썬의 내장함수인 zip 함수에 대해 알아보겠습니다. zip(*iterables, strict=False) for item in zip(['mason', 'harriet', 'john'], [1, 2, 3]): print(item) p parix-data.tistory.com 알고리즘 문제를 풀면서 자주 사용하는 파이썬 내장함수에 대해 살펴보고 있습니다. 이전에 map 함수에 대해 정리한 바가 있는데요, 이번 정리에서는 파이썬의 내장함수인 enumerate 함수에 대해 알아보겠습니다. enumerate(iterable, start) enumerate 함수는 첫 번째 인자로 iterable 객..