[Programmers] Lv1. 문자열 내 p와 y의 개수 문제 바로가기 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr 코드 def solution(s): s = s.lower() if s.count('p') == s.count('y'): return True return False 2021. 5. 15.
[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.
반응형