목록WHAT I LEARN/TIL (79)
Nonamed Develog
일일 알고리즘/SQL 코드카타알고리즘33) 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ left ≤ right ≤ 1,000def solution(left, right): answer = 0 for i in range(left, right+1): count = 0 for j in range(1, i+1): if i % j == 0: count += 1 if count % 2 == 0: answe..
일일 알고리즘/SQL 코드카타알고리즘32) 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 - a, b의 길이는 1 이상 1,000 이하입니다. - a, b의 모든 수는 -1,000 이상 1,000 이하입니다.def solution(a, b): answer = 0 for i, j in zip(a, b): #2개의 변수를 for문에 쓰기 위해 zip()을 이용 answer += int(i*j) return answer SQL32) 카테고리 ..
일일 알고리즘/SQL 코드카타알고리즘31) 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건- n은 길이 10,000이하인 자연수입니다.def solution(n): str = '수박' return n//2 * str if n % 2 == 0 else n//2 * str + str[0]str에 곱셈이 된다는 것을 지난 핸드폰 번호 가리기 문제의 다른 사람 문제 풀이에서 알게 되었고, 드디어 문제에 적용할 기회가 생겼다. 조건문을 이용하여 n이 짝수 or 홀수 일 때 나누어 결과가 나오게 코드를 작성해 봤다. 그리고 이번엔 조건문 작..
일일 알고리즘/SQL 코드카타알고리즘30. 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 - s는 길이가 1 이상, 100이하인 스트링입니다.def solution(s): if len(s) % 2 != 0: answer = s[len(s)//2] elif len(s) % 2 == 0: answer = s[(len(s)//2)-1:(len(s)//2)+1] return answer가운데 인덱스를 구하는 코드만 작성하면 되는 문제였다. 홀수 일 때 2로 나온 몫이 가운데 인덱스이고, 짝수일때는 [몫-1:몫+1] 인덱스로 풀었다. 아직 인덱스에 대한 이해가 많이 부족했다. 특..
코드카타 알고리즘/SQL알고리즘27. 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.제한 조건- phone_number는 길이 4 이상, 20이하인 문자열입니다.def solution(phone_number): answer = "" for i in phone_number[:-4]: answer += "*" return answer + phone_number[-4:]-4번째를 기준으로 풀었지만 : 의 의미를 이해할 필요가 있었다. : 을 몰랐기에 -4번 째..
일일 알고리즘/SQL코드카타알고리즘26. 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항- absolutes의 길이는 1 이상 1,000 이하입니다.- absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.- signs의 길이는 absolutes의 길이와 같습니다.- signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 입출력 예absolutessignsresults[4, 7, 12][true, false, true]..
일일 알고리즘/SQL 코드카타 알고리즘25. 나누어 떨어지는 숫자 배열array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항- arr은 자연수를 담은 배열입니다.- 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.- divisor는 자연수입니다.- array는 길이 1 이상인 배열입니다. 입출력 예arrdivisorreturn[5, 9, 7, 10]5[5, 10][2, 36, 1, 3]1[1, 2, 3, 36][3, 2, 5]10[-1](추가)[2, 4, 6, 8, 9]3[6, 9] d..
일일 알고리즘/SQL 코드카타Q. String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제한사항- seoul은 길이 1 이상, 1000 이하인 배열입니다.- seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.- "Kim"은 반드시 seoul 안에 포함되어 있습니다. 입출력 예seoulreturn["Jane", "Kim"]"김서방은 1에 있다"def solution(seoul): answer = '김서방은 '+str(seoul.index('Kim'))+'에 있다' return answer ..