[Programmers] Lv1. 두 정수 사이의 합 문제 바로가기 코딩테스트 연습 - 두 정수 사이의 합 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우 programmers.co.kr 코드 def solution(a, b): if a > b: a, b = b, a return sum(range(a, b + 1)) 2021. 5. 15.
[Programmers] Lv1. 소수 찾기 문제 바로가기 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr 코드 def solution(n): dp = [0, 0] + [1] * (n - 1) answer = 0 for i in range(2, n + 1): if dp[i]: answer += 1 # 소수가 맞다면, 그에 해당하는 배수들을 다 지운다. for j in range(2*i, n+1, i): dp[j] = 0 return answer 2021. 5. 15.
[Programmers] Lv1. [1차] 비밀지도 문제 바로가기 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 풀이 다른 방식으로도 풀었지만, 정규표현식 연습을 위해 정규표현식을 사용해 풀어보았다, 첫 글자가 0이면 나타나지 않기 때문에, 중간에 0을 앞자리에 채워주는 코드가 필요했다. 그리고 정규표현식을 사용해 1을 '#'으로 0을 ' '으로 치환 코드 import re def solution(n, arr1, arr2): answer = [] for i in range(n): bin_num = str(bin(arr1[i]|arr2[i]))[2:] .. 2021. 5. 15.
[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.
반응형