👉 오늘 한 일
- 프로그래머스 문제풀이(level 0)
- 프로그래머스 SQL 문제풀이(level 1)
프로그래머스 문제풀이
1. 숨어있는 숫자의 덧셈 (2)
- 정답률 80%
- 연속된 수를 하나의 수로 보기 위해 문자열을 .으로 대체한 뒤 split 하고, 리스트를 순회하며 숫자를 더해줌
import re
def solution(my_string):
result = 0
s = re.sub("[a-zA-Z]", ".", my_string)
s = s.split(".")
for i in s:
if i == "":
pass
else:
result += int(i)
return result
- 다른 사람의 풀이
- 연속된 수를 하나의 수로 보기 위해 문자열들은 띄어쓰기로 처리한 뒤 숫자들을 더함
def solution(my_string):
s = ''.join(i if i.isdigit() else ' ' for i in my_string)
return sum(int(i) for i in s.split())
2. 이진수 더하기
- 정답률 80%
- 10진수로 변환하기 위해 이진수를 의미하는 접두어를 붙여준 다음 더한 뒤 다시 2진수로 변환
def solution(bin1, bin2):
b1 = "0b" + bin1
b2 = "0b" + bin2
return bin(int(b1, 2) + int(b2, 2))[2:]
- 다른 사람 풀이
- 접두어(
0b
)를 안붙이고 int()
의 인자로 몇진수인지만 넣어주면 변환해준다!
def solution(bin1, bin2):
answer = bin(int(bin1,2) + int(bin2,2))[2:]
return answer
3. 7의 개수
- 정답률 79%
- 리스트의 숫자들을 문자열로 만들어 순회하며 7을 count
def solution(array):
result = 0
for num in array:
result += str(num).count("7")
return result
- 다른 사람 풀이
- 리스트 전체를 문자열로 만들어 7을 count
def solution(array):
return str(array).count('7')
SQL
1. 평균 일일 대여 요금 구하기
SELECT ROUND(AVG(DAILY_FEE)) AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = "SUV"
2. 강원도에 위치한 생산공장 목록 출력하기
left()
로 처음 세 글자가 강원도인 것만 추출
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE LEFT(ADDRESS, 3) = "강원도"
ORDER BY FACTORY_ID
3. 조건에 맞는 도서 리스트 출력하기
- PUBLISHED_DATE의 포맷을 예시와 맞추기 위해(시분초 삭제)
left()
사용
SELECT BOOK_ID, LEFT(PUBLISHED_DATE, 10) PUBLISHED_DATE
FROM BOOK
WHERE YEAR(PUBLISHED_DATE) = '2021' AND CATEGORY = '인문'
ORDER BY PUBLISHED_DATE
4. 과일로 만든 아이스크림 고르기
- 두 개 테이블을 조인해서 각 테이블에서 필요한 정보를 where절에서 사용
SELECT F.FLAVOR
FROM ICECREAM_INFO I
JOIN FIRST_HALF F
ON I.FLAVOR = F.FLAVOR
WHERE F.TOTAL_ORDER > 3000 AND I.INGREDIENT_TYPE = "fruit_based"
ORDER BY F.TOTAL_ORDER DESC