[Programmers] Lv2. 124 나라의 숫자 문제 바로가기 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 풀이 규칙성은 3으로 나눴을 때 나머지가 0이면 4, 1이면 1, 2이면 2를 반환한다. 그래서 rule을 ["4", "1", "2"]순으로 두고, n이 존재할 때까지 반복문을 돌린다. n을 3으로 나누고, 나눈 몫을 n으로 두고 나머지를 m으로 둔다. 그리고 rule[m]에 해당하는 값을 answer의 앞자리에 더해준다. 만약 m이 나머지가 0이면 n을 1 감소시켜 준다.(m이 3이라는 의미) 코드 def solution(n): answer = '' rule = ["4", "1", "2"] while n: n, m = n // 3, n % 3 answer = rule[m] + answer if not m: n -= 1.. 2021. 5. 20.
[Programmers] Lv2. 멀쩡한 사각형 문제 바로가기 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 풀이 전체 면적에서 가로로 가는길(w)과 세로로 가는길(h)를 한 번씩 빼주고 겹치는 구간인 w, h의 최대공약수를 더해줌 gcd는 최대공약수를 구하는 함수로 w를 h로 나눴을 때 나머지가 없을 때까지 나누는 과정을 반복 코드 def gcd(w, h): while w % h: w, h = h, w % h return h def solution(w,h): return w * h - w - h + gcd(w, h) 2021. 5. 20.
[Programmers] Lv1. 최대공약수와 최소공배수 문제 바로가기 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 풀이 gcd는 최소공배수 구하는 함수 최대공약수는 (a * b)/gcd(a, b) 코드 def gcd(n, m): while n % m: n, m = m, n % m return m def solution(n, m): if n > m: n, m = m, n return [gcd(n, m), n * m / gcd(n, m)] 2021. 5. 15.
[Programmers] Lv1. 짝수와 홀수 문제 바로가기 코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" programmers.co.kr 코드 def solution(num): if num % 2: return "Odd" return "Even" 2021. 5. 15.
[Programmers] Lv1. 평균 구하기 문제 바로가기 코딩테스트 연습 - 평균 구하기 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr programmers.co.kr 코드 def solution(arr): return sum(arr) / len(arr) 2021. 5. 15.
[Programmers] Lv1. 콜라츠 추측 문제 바로가기 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 코드 def solution(num): answer = 0 while True: if num == 1: return answer if num % 2 == 0: num //= 2 answer += 1 else: num = num * 3 + 1 answer += 1 if answer >= 500: if num != 1: answer = -1 return answer if num == 1: return answer 2021. 5. 15.
[Programmers] Lv1. 하샤드 수 문제 바로가기 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 코드 def solution(x): tmp = [int(i) for i in str(x)] if x % sum(tmp): return False return True 2021. 5. 15.
[Programmers] Lv1. 핸드폰 번호 가리기 문제 바로가기 코딩테스트 연습 - 핸드폰 번호 가리기 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자 programmers.co.kr 코드 def solution(phone_number): return "*"*(len(phone_number)-4) + phone_number[-4:] 2021. 5. 15.
[Programmers] Lv1. 행렬의 덧셈 문제 바로가기 코딩테스트 연습 - 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요 programmers.co.kr 코드 def solution(arr1, arr2): answer = [[x+y for x,y in zip(a1, a2)] for a1, a2 in zip(arr1, arr2)] return answer 2021. 5. 15.
반응형