Stay Hungry Stay Foolish

프로그래머스 22

[파이썬을 파이썬답게] Part 06. Itertools / Collections 모듈 (Programmers)

🗒 강의노트 🗒 곱집합 (Cartesian product) 구하기 보통 곱집합을 구할 때 반복문을 이용해 두 iterable의 원소를 하나씩 곱해간다. 파이썬에서는 itertools.product를 이용하면, for문을 사용하지 않고도 곱집합을 구할 수 있다. import itertools iterable1 ='ABCD' iterable2 = 'xy' print(list(itertools.product(iterable1, iterable2))) ☐ 문제 1 2차원 리스트를 1차원 리스트로 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열을 담은..

[파이썬을 파이썬답게] Part 05. Sequence Types 다루기 (Programmers)

☐ 문제 1 sequence 멤버를 하나로 이어붙이기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 리스트 mylist를 입력받아, 이 리스트의 원소를 모두 이어붙인 문자열을 리턴하는 함수, solution을 만들어주세요. 예를 들어 mylist가 ['1', '100', '33'] 인 경우, solution 함수는 '110033'을 리턴하면 됩니다. 제한 조건 mylist의 길이는 100 이하인 자연수입니다. mylist의 원소의 길이는 100 이하인 자연수입니다. ☑ Solution def solution(mylist): return ''.joi..

[파이썬을 파이썬답게] Part 04. Iterable 다루기 (Programmers)

🗒 강의노트 🗒 sort() : 리스트의 원소를 정렬하는 함수로, 원본의 멤버 순서를 변경한다. 따라서 원본의 순서는 변경하지 않고, 정렬된 값을 구하려면 sort 함수를 사용할 수 없다. sorted() : 매개변수로 들어온 iterable한 데이터를 새로운 정렬된 리스트로 만들어서 반환해 주는 함수다. sort 예시 list1 = [3, 2, 5, 1] list2 = [i for i in list1] # 또는 copy.deepcopy를 사용 list2.sort() sorted 예시 list1 = [3, 2, 5, 1] list2 = sorted(list1) ☐ 문제 1 [ 2차원 리스트 뒤집기 ] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 ..

[파이썬을 파이썬답게] Part 03. Str 다루기 (Programmers)

☐ 문제 1 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 s와 자연수 n이 입력으로 주어집니다. 문자열 s를 좌측 / 가운데 / 우측 정렬한 길이 n인 문자열을 한 줄씩 프린트해보세요. 제한 조건 s의 길이는 n보다 작습니다. (n - s의 길이)는 짝수입니다. s는 알파벳과 숫자로만 이루어져 있으며, 공백 문자가 포함되어있지 않습니다. 입출력 예 ✔ Feedback ✔ s, n = input().strip().split(' ') n = int(n) print(s.ljust(n)) print(s.center(n)) print(s.rjust(n))..

[파이썬을 파이썬답게] Part 01. Python 꿀팁 (Programmers)

☐ 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정수를 담은 이차원 리스트, mylist 가 solution 함수의 파라미터로 주어집니다. mylist에 들은 각 원소의 길이를 담은 리스트를 리턴하도록 solution 함수를 작성해주세요. ☐ 제한 조건 mylist의 길이는 100 이하인 자연수입니다. mylist 각 원소의 길이는 100 이하인 자연수입니다. ☐ 입출력 예 ☑ Solution def solution(mylist): answer = [] for i in range(len(mylist)): answer.append(len(mylist..

Programmers 약수의 합 (Java/Level 1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 Solution class Solution { public int solution(int n) { int answer = 0; for(int i=1; i

프로그래머스 입양 시각 구하기(1) (GROUP BY/Level 2)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 보호소에서 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이 발생하는 지 조회한다. 이때 결과는 시간대 순으로 정렬한다. 문제 풀이 시간과 건수를 조회해야 하므로 SELECT절에 DATETIME과 집계함수를 이용한다. 날짜 데이터에서 시만 추출할 때 HOUR를 쓰고, 개수를 세는 COUNT 집계함수를 사용한다. FROM절에는 보호소에서 입양을 보낸 동물들의 정보가 담긴 ANIMAL_OUTS를 쓴다. 09:00부터 19:59까지라는 조회하라는 조건이 있으므로, WHERE절을 이용한다. 시간..

Programmers 없는 숫자 더하기 (Python/Level 1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. 입출력 예 numbers result [1,2,3,4,6,7,8,0] 14 [5,8,4,0,6,7,9] 6 문제 설명 입출력 예 #1 : 5, 9가 nu..

Programmers 약수의 개수와 덧셈 (Python/Level 1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ left ≤ right ≤ 1,000 입출력 예 left right result 13 17 43 24 27 52 문제 설명 입출력 예 #1 - 다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다. 수 약수 약수의 개수 13 1, 13 2 14 1..

Programmers 2016년 (Python/Level 1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한사항 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어..

Programmers K번째수 (Python/Level 1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의..

Programmers 나누어 떨어지는 숫자 배열 (Python/Level 1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예 arr divisor return [5, 9, 7, 10] 5 [..

Programmers 두 개 뽑아서 더하기 (Python/Level 1)

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2, 1, 3, 4, 1] [2 ,3, 4, 5, 6, 7] [5, 0, 2, 7] [2, 5, 7, 9, 12] 문제 설명 입출..

Programmers 상위 n개 레코드 (SELECT/Level 1)

문제 설명 보호소에 가장 먼저 들어온 동물의 이름을 조회한다. 문제 풀이 SELECT문에 동물의 이름(NAME)을 적는다. FROM절에 보호소 테이블인 ANIMAL_INS를 적는다. 가장 먼저 들어온 동물을 조회하는 조건이 있으므로, 보호시작일(DATETIME)이 가장 오래된 것을 찾으면 된다. 이때, DATETIME이 최소인 것을 검색하면 되는데 WHERE절에서는 집계함수를 사용할 수 없다. 따라서 서브 쿼리를 이용한다. 서브 쿼리는 하나의 쿼리문에 포함되어 있는 또 다른 쿼리문이다. 사용하는 방법은 WHERE절에서 칼럼명 뒤에 IN을 적어주고 괄호 안에 다른 쿼리문을 적는다. IN은 괄호 내에서 일치하는 것이 있으면 TRUE로 평가된다. Solution SELECT NAME FROM ANIMAL_IN..