코드카타 58

콜라츠 추측 # while 반복문

1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될 때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 –1을 반환해 주세요. def solution(n..

즐겨찾기가 가장 많은 식당 정보 출력하기 # 다중컬럼 IN

https://school.programmers.co.kr/learn/courses/30/lessons/131123#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요. select food_type, rest_id,rest_name, favorites from rest_info where (food_type,favorites) IN (select f..

SQL 코드카타 2024.04.01

두 정수 사이의 합 # min(),max()

https://school.programmers.co.kr/learn/courses/30/lessons/12912 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. def solution(a,b): if a

3월에 태어난 여성 회원 목록 출력하기 # MONTH()

https://school.programmers.co.kr/learn/courses/30/lessons/131120#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요. -- SELECT member_id , member_name , gender , DATE_FORMAT(date_of_birth, '%Y-%m-%d..

SQL 코드카타 2024.03.31

가격대 별 상품 개수 구하기 # TRUNCATE(숫자, 버릴 자릿수)

https://school.programmers.co.kr/learn/courses/30/lessons/131530 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요. -- 내가 작성한 쿼리 SELECT CASE W..

SQL 코드카타 2024.03.31

하샤드 수

https://school.programmers.co.kr/learn/courses/30/lessons/12947 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. def solution(x): x_list = list(map(int, str(x))) Sum = sum(x_list) i..

있었는데요 없었습니다

관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다. # 내가 작성한 쿼리 SELECT i.animal_id, i.name FROM animal_ins i INNER JOIN animal_outs o ON i.animal_id = o.animal_id WHERE i.datetime > o.datetime ORDER BY i.datetime # 다른 쿼리 SELECT a.animal_id, a.name from animal_ins a, animal_outs b where a.animal_id = b.animal_id and a.datetime > b.dat..

SQL 코드카타 2024.03.29

정수 내림차순으로 배치하기 # sort, ''.join()

def solution(n): result = list(str(n)) result.sort(reverse = True) return int(''.join(result)) ① result = list(str(n)) # n을 문자열로 바꾸어 리스트를 만들어준다 >> ['1','1','8','3','7','2'] ② result.sort(reverse = True) # 리스트를 내림차순으로 정렬해준다 >> ['8','7','3','2','1','1'] ③ int(''.join(result)) # ''.join(리스트) 함수를 사용하여 문자열로 합쳐서 반환 >> 문자열 873211 # int 를 사용하여 정수로 리턴해준다 >> 숫자열 873211 * '구분자'.join(리스트) 함수 매개변수로 들어온 리스트를 ..

정수 제곱근 판별 # import math, n**(1/2), %1==0

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. def solution(n): x = n**(1/2) if x % 1 == 0: return (x+1) ** 2 else: return -1 ① n**(1/2) # n의 1/2 제곱은 n의 제곱근이다. ex. 121의 1/2 승 >> √121 = 11 ② x % 1 == 0 # x를 1로 나눈 나머지가 0이면 양의정수이다. # ex. x = 11 이었을 때 1로 나누면 몫이 11, 나머지가 0 # 다른 풀이 import math def solution(n): x = math.sqrt(..

자연수 뒤집어 배열로 만들기 # [::-1], reverse()

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. def solution(n): result = [] for i in str(n): result.append(int(i)) return result[::-1] # 다른 코드 def solution(n): result = [] for i in str(n): result.append(int(i)) result.reverse() return result # 다른 코드 def solution(n): result = [] for i in reversed(str(n)): result.append(int(i)) return result ① result = [] # 리스트 만들어주..