[Programmers] Lv1. 가운데 글자 가져오기 문제 바로가기 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 코드 def solution(S): if len(S) % 2: return S[len(S) // 2] return S[len(S) // 2 - 1:len(S) // 2 + 1] 2021. 5. 15.
[Programmers] Lv1. 두 개 뽑아서 더하기 문제 바로가기 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 풀이 solution은 for문을 돌면서 두 개를 뽑아 더한 후 answer에 추가해준다. 중복 제거를 위해 set을 한 뒤 list로 바꾸고 sorted를 해준다. 코드 def solution(numbers): answer = [] for idx in range(len(numbers)): for num in range(idx + 1, len(numbers)): answer.append(numbers.. 2021. 5. 15.
[Programmers] Lv1. 약수의 개수와 덧셈 문제 바로가기 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr 풀이 get_divisor는 약수의 개수의 합을 구하는 함수 solution은 약수의 개수가 짝수면 더해주고, 약수의 개수가 홀수면 빼준다. 코드 def get_divisor(num): cnt = 0 for i in range(1, num + 1): if num % i == 0: cnt += 1 return cnt def solution(left, right): answer = 0 for num .. 2021. 5. 15.
[Programmers] Lv1. 2016년 문제 바로가기 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 코드 def solution(a, b): date = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU'] day = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] return date[(sum(day[:a - 1]) + b-1) % 7] 2021. 5. 15.
[Programmers] Lv1. 실패율 문제 바로가기 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 풀이 처음에는 answer에 append하는 방식으로 구현할까 했지만, answer에 각각의 인덱스를 키로 가지고 실패율을 값으로 해서 dictionary를 구현하였다. 그리고 남아있는 멤버가 없으면 실패율은 0이고, 남아있는 멤버가 있으면 (현재 스테이지에 있는 사람의 수 / 남아있는 사람 수)가 실패율이다. answer에 추가하고 나면 남아있는 멤버의 수를 줄여주고 다시 반복 lambda를 사용해서 answer를 정렬하고 반환 코드 def so.. 2021. 5. 15.
[Programmers] Lv1. 3진법 뒤집기 문제 바로가기 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 풀이 tmp에 3진법으로 만든 답을 넣는다. 이 과정에서 자연스럽게 앞 뒤 반전이 된 3진법으로 저장이 된다. 그리고 int(tmp, 3)을 사용해 3진법을 10진법으로 변경 코드 def solution(n): tmp = '' while n: tmp += str(n % 3) n //= 3 return int(tmp, 3) 2021. 5. 15.
[Programmers] Lv1. 예산 문제 바로가기 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 풀이 부서별로 신청한 금액(d)을 정렬하고, cnt에 차근차근 더해가며 cnt가 budget을 넘어가게 되면 answer을 반환 코드 def solution(d, budget): answer = cnt = 0 d.sort() for i in range(len(d)): cnt += d[i] if cnt > budget: break answer += 1 return answer 2021. 5. 15.
[Programmers] Lv1. 신규 아이디 추천 문제 바로가기 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 풀이 다른 방식으로도 풀었지만, 정규표현식 연습을 위해 정규표현식을 사용해 풀어보았다, 코드 import re def solution(new_id): # 1. 모든 대문자 소문자로 치환 answer = new_id.lower() print(answer) # 2. 소문자, 숫자, -, _, . 만 남겨두기 answer = re.sub('[^a-z0-9\-_.]', '', answer) # 3. 마침표가 2번 이상이면 하나로 치환 answer .. 2021. 5. 15.
[Programmers] Lv1. 내적 문제 바로가기 코딩테스트 연습 - 내적 길이가 같은 두 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의 programmers.co.kr 풀이 solution()은 zip을 사용해 각각의 리스트 원소들을 곱한 것의 합을 구함 코드 def solution(a, b): return sum(i * j for (i, j) in zip(a, b)) 2021. 5. 15.
반응형