programing
-
[JavaScript] 정규표현식으로 문자열 쪼개기programing/Language 2020. 11. 22. 13:36
해당 정규표현식은 character class와 positive lookahead, quantifier 이용한 방법이다. const str = 'abcdefghijklmnopqrstuvwxyz'; const reg = /(?=\w{1})/g; str.split(reg); // ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] 만약 한글로 하고 싶다면 정규표현식을 /(?=[가-힣]{1})/g으로 변경하면 된다.
-
[Programmers] 3진법 뒤집기programing/Algorithm 2020. 11. 15. 19:46
3진법 뒤집기 월간 코드 챌린지 시즌 1 python3 def solution(n): quetient = 3 remainders = [] while n >= quetient: tmp = n // quetient remainders.append(n % quetient); n = tmp remainders.append(n) remainders.reverse() my_sum = 0 for i in range(len(remainders)): my_sum += remainders[i] * (quetient ** i) return my_sum 진법 변환은 [디지털논리] 10진수를 2진수로 변환하는 방법을 확인해주세요. 입력받은 숫자를 계속해서 3으로 나누면서 나머지를 remainders에 푸쉬합니다. for문에서 ..
-
[Programmers] 가운데 글자 가져오기programing/Algorithm 2020. 11. 15. 16:15
가운데 글자 가져오기 연습문제 python3 import math; def solution(s): isOdd = len(s) % 2 startIndex = math.ceil(len(s) / 2) - 1 endIndex = 1 if isOdd else 2 answer = s[startIndex: startIndex + endIndex] return answer 길이에 따라 시작 인덱스를 구하는 공식이 위와 같습니다. 시작 인덱스와 끝 인덱스를 구해서 슬라이싱해주면 됩니다.
-
[Programmers] 2016년programing/Algorithm 2020. 11. 15. 16:02
2016년 연습문제 python3 def solution(a, b): date = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU'] num_of_day = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] mGap = a - 1 dGap = b - 1 gap = sum(num_of_day[0:mGap]) + dGap i = gap % 7 return date[i] 입력받은 날자와 1월 1일의 차이를 구합니다. 해당 차이를 7로 나눈 나머지에 해당하는 날자를 반환하면 됩니다. 2016년 1월 1일이 금요일이므로, date는 'FRI' 부터 시작합니다.
-
[JavaScript] yeild*programing/Language 2020. 10. 25. 15:44
Generator javascript에는 generator라는 개념이 있습니다. 이 제네레이터는 함수명 앞에 *를 붙여서 선언할 수 있습니다. function *foo() { yield 1; yield 2; yield 3; } const iterator = foo(); iterator.next(); // {value: 1, done: false} iterator.next(); // {value: 2, done: false} iterator.next(); // {value: 3, done: false} iterator.next(); // {value: undefined, done: true} 자세한 것은 [Functional] 제네레이터와 이터러블을 참고해 주시기 바랍니다. yield yield 키워드는 ..
-
[Programmers] K번째 수programing/Algorithm 2020. 10. 25. 13:38
K번째 수 정렬 문제 python3 def solution(array, commands): answer = [] for command in commands: [i, j, k] = command sliced = array[i - 1:j] sliced.sort() answer.append(sliced[k - 1]) return answer 간단합니다. commands 가 원소 3개짜리 리스트의 리스트 (2차원 배열)이므로, 순회를 하면서 i, j, k를 뽑아서 슬라이싱 후 정렬 후 k번째 원소를 result에다가 푸쉬하면 됩니다.
-
[Programmers] 완주하지 못한 선수programing/Algorithm 2020. 10. 24. 17:34
완주하지 못한 선수 해시를 이용해서 푸는 문제. python3 def solution(participant, completion): pMap = dict() cMap = dict() for person in participant: if(person in pMap): pMap[person] += 1 else: pMap[person] = 1 for person in completion: if(person in cMap): cMap[person] += 1 else: cMap[person] = 1 for person in pMap: if(person not in cMap): return person elif(pMap[person] == cMap[person] + 1): return person 참가자와 완주자 ..