문제 링크https://www.codewars.com/kata/rgb-to-hex-conversion/train/python def limit(x): if x > 255 : return 255 elif x < 0 : return 0 else : return x def rgb(r,g,b): return "{:02X}{:02X}{:02X}".format(limit(r),limit(g),limit(b)) 십진수 숫자 세 개를 16진수로 바꿔서 반환하는 문제이다. 0~255 범위를 초과하는 입력이 들어오면 제한된 값으로 바꿔주는 함수가 필요하고, format을 사용해서 숫자를 16진수로 바꿔줬는데 https://pyformat.info/ 이곳을 참고했다.같은 포멧이 세 번 반복되기 때문에 ("{:02X}" * ..
문제 링크https://www.codewars.com/kata/reversed-words/train/python def reverseWords(str): a = str.split() a.reverse() return " ".join(a) 한줄로 줄이면 def reverseWords(str): return " ".join(reversed(str.split())) 리스트.reverse()는 해당 리스트를 역순으로 재배열해주고 reversed는 역순으로 된 리스트를 반환. 저난번 문제에 나왔던 join으로 쉽게 합쳤다. 근데 풀수록 너무 쉬워서 알고리즘 공부라기에는 애매한 것 같다.
문제 링크https://www.codewars.com/kata/pete-the-baker/train/python 내 답안def cakes(recipe, available): return min([available[x] // recipe[x] if x in available else 0 for x in recipe]) available에 key값이 없는 경우를 생각 안 해줘서 처음에 오류가 났었다. 그래서 if를 이용해서 키값이 있는지 찾고 없으면 0을 반환하도록 했는데 def cakes(recipe, available): return min(available.get(k, 0)//recipe[k] for k in recipe)위에 답처럼 딕셔너리의 get 함수를 써서 키값이 없으면 디폴트로 0을 반환하도록..
문제 링크https://www.codewars.com/kata/578aa45ee9fd15ff4600090d/train/python def sort_array(source_array): odd_num_idx = [] odd_num = [] for i,value in enumerate(source_array): if value%2==1 : odd_num_idx.append(i) odd_num.append(value) list.sort(odd_num) for i,value in enumerate(odd_num_idx): source_array[value] = odd_num[i] return source_array def sort_array2(arr): odds = sorted((x for x in arr if..
문제 링크https://www.codewars.com/kata/take-a-number-and-sum-its-digits-raised-to-the-consecutive-powers-and-dot-dot-dot-eureka/train/python 내 답def sum_dig_pow(a, b): list = [] for i in range(a,b+1): sum = 0 for n,k in enumerate(str(i),1): sum += int(k)**n if i == sum: list.append(i) return list 득점 많은 답def dig_pow(n): return sum(int(x)**y for y,x in enumerate(str(n), 1)) def sum_dig_pow(a, b): retur..
문제링크https://www.codewars.com/kata/554e4a2f232cdd87d9000038/train/python문자열에서 각 문자를 대응되는 문자로 바꿔주는 문제조건이 네가지 밖에 없어서 if와 elif를 이용하면 쉽게 할 수 있다.추천순 높은 두 가지 정답을 살펴보면 아래와 같다def DNA_strand(dna): return dna.translate(str.maketrans("ATCG","TAGC"))python 3.4부터 기본으로 지원되는 str.maketrans를 이용했다.intab과 outtab을 변수로 받아서 translate에 쓸 수 있는 transtable을 만들어준다.maketrans 메서드 설명은 아래 링크 참고함https://www.tutorialspoint.com/p..
문제 링크 https://www.codewars.com/kata/53368a47e38700bd8300030d/train/python딕셔너리 배열로 이름을 입력 받아서 정해진 포맷으로 출력하는 문제이다. 내 풀이는 아래와 같다.def namelist(names): str = '' for i,dic in enumerate(names, 1): if i != len(names) : str = str + dic['name'] + ', ' elif len(names) == 1 : str = dic['name'] else : str = str[:-2] + ' & ' + dic['name'] return strnames의 길이가 1인경우 이름만 출력하게 해주고 나머지 경우는 전부 이름뒤에 ', '을 붙여줬다. 그리고 ..
Count the number of Duplicates Write a function that will return the count of distinct case-insensitive alphabetic characters and numeric digits that occur more than once in the input string. The input string can be assumed to contain only alphabets (both uppercase and lowercase) and numeric digits. Example "abcde" -> 0 # no characters repeats more than once"aabbcde" -> 2 # 'a' and 'b'"aabBcde" ..
- Total
- Today
- Yesterday
- 치닝디핑
- 마스터킹
- conda
- introduction to algorithms third edtion
- 연습문제
- Introduction to algorithms
- PYTHON
- codewars
- anaconda
- 하스스톤
- CHUWI HI8
- 멜킨스포츠
- 개봉기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |