본문 바로가기

분류 전체보기

(263)
[프로그래머스] N개의 최소공배수 https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr [정답] 1. i를 증가시키면서 최소공배수를 찾을 것이다. 즉 i가 리스트에 있는 수들로 다 나누어진다면 i가 최소공배수가 된다. 2. answer==0일 동안, 즉 answer인 최소공배수를 찾을 동안 while문을 돈다. 3. 변수 count는 리스트에 있는 수 중 i로 나누어지지 않는 수가 있다면 기록하기 위한 변..
[프로그래머스] 최댓값과 최솟값 https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr [정답] 1. 문자열 s을 공백 기준으로 나누어 자료형을 int로 변경하여 list형태로 list_s에 넣어준다. 2. min(), max()함수를 사용하여 s_min=list_s의 최솟값/ s_max=list_s의 최댓값을 구한다. 3. s_min과 s_max의 자료형을 str로 바꾸어 answer에 넣어준다. 4. answer을 ret..
[프로그래머스] 2016년 https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr [정답] 1. 문제에서 2016년 1월 1일은 금요일이라고 한다. 진짜 달력을 찾아보니 정말로 금요일이었다. 그래서 calendar모듈을 사용하기로 하였다. ( 어느정도 꼼수를 부린 것이다,,ㅎㅎ) 2. calendar.weekday()를 사용하여 요일에 대한 숫자를 n_date에 넣는다. 3. 리스트 date에 요일을 적..
[프로그래머스] 내적 https://programmers.co.kr/learn/courses/30/lessons/70128?language=python3 코딩테스트 연습 - 내적 길이가 같은 두 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 [정답] 1. 배열 a,b가 길이가 같으므로 for문은 0~len(a)로 돌린다. 2. for문 루프를 돌면서 a[i]*b[i]를 answer에 계속 넣어주어 내적을 구한다. 3. answer을 return한다.
[프로그래머스] 3진법 뒤집기 https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr [정답] 1. 진법 계산방법을 사용하여 n이 0이 아닐 동안, n%3을 해주어 리스트 num_3에 넣고 n을 n//3으로 해준다. 만약 n=45일 경우, num_3=[0,0,2,1]이 된다. ( 입출력 예시에서는 3진법으로 바꾸고 앞뒤 반전을 해주어 10진법으로 표현하였는데, num_3자체가 앞뒤 반전을 해준 모양과..
[프로그래머스] 정수 제곱근 판별 https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr [정답] 1. 1~n+1까지 반복문을 돌면서, 만약 i**2==n, 즉 i가 n의 제곱근이면 answer=(i+1)**2를 넣어준다. ( 어짜피 for문을 다 돌 경우는 별로 없으니 처음에 for문의 마지막 값을 n으로 지정하였다. 그러나 정확성 테스트에서 하나의 실패가 떴다. 문제의 제한사항을 보면, 'n은 1이상 50000000..
[프로그래머스] 정수 내림차순으로 배치하기 https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 programmers.co.kr [정답] 1. n의 자료형을 string으로 바꾸어 list형태로 n에 넣어준다. 2. n을 내림차순으로 바꿔준 뒤, 문자열 answer_str에 하나씩 넣어준다. 3. answer_str을 int형태로 바꾸어 answer에 넣는다. 4. answer을 return한다.
[프로그래머스] 최대공약수와 최소공배수 https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr [정답] 1. 최대공약수를 구하기 위해 n,m중에서 작은 값을 min_num으로 정한다. 2. 1~min_num+1동안 반복문을 돌면서, n,m을 나눌 수 있는 i를 찾는다. 3. 반복문을 돌 동안 i는 계속 갱신되고, 이것이 GCD(최대공약수)가 된다. 4. LCM(최소공배수)는 n*m/GCD이다. 5. GCD와 LCM을 리스트..