본문 바로가기

Language

(13)
재귀함수 함수가 자기 자신을 호출하는 ‘재귀(recursion)’ by 위키독스 스택은 deque를 활용해 LIFO(last in first out)/ FIFO(first in first out) 개념을 이해했다. (물론 아직 시간초과의 문제가 발생하는 것을 보면 그 부분도 추가 정리가 필요하다. 그러나 '재귀'는 어렵다. 복잡해지면 2중 3중 for문 구조를 만들던 취코녀에게 더욱 어럽게 느껴진다. 백준 브론즈 레벨에서도 헤매는걸 보면서 실버에 들어가기 전에 한 번 정리하고 넘어가는 게 좋을 거 같다. 재귀의 개념, 지역변수/전역변수 개념, 내가 풀었던 문제를 정리하며 나만의 재귀 cheet sheet를 만들어본다. 1. 재귀의 개념 함수 안에서 함수가 자기자신을 호출하는 것 제한을 두지 않으면 계속해서 돌아가..
알고리즘 Cheat Sheet #패키지 from math import sqrt #제곱근 from math import gcd #최대공약수 from collections import Counter #딕셔너리 형태로 중복된 원소와 그의 개수 출력 from collections import product #AxB 데카르트의 곱(집합의 곱) from collections import permutations #순열 from collections import combinations #조합 from collections import combinations_with_replacement #중복조합(H) #함수 ##최빈값 구하기 from collections import Counter Counter(n_list).most_common(n) #n_li..
SQL Cheat Sheet ##문자열을 합칠때 CONCAT사용! CONCAT('/home/grep/src/', B.BOARD_ID, '/', FILE_ID, FILE_NAME, FILE_EXT) AS FILE_PATH concat(CITY, ' ', STREET_ADDRESS1) #공백을 넣고 싶다면 이렇게! ##변수가 조건을 만족할때만 WHERE VIEWS = (SELECT MAX(VIEWS) FROM USED_GOODS_BOARD ) ## "STATUS"의 원소들을 재 분류해 변수명을 "STATUS"로 출력 CASE WHEN STATUS = 'SALE' THEN '판매중' WHEN STATUS = 'RESERVED' THEN '예약중' WHEN STATUS = 'DONE' THEN '거래완료' END AS STATUS ## 날..
Case 문을 통해 조건에 맞는 경우 추출하기 CASE문 활용한 서브쿼리 CASE WHEN 조건 1 THEN ‘조건 1 만족 시 반환할 값’ WHEN 조건 2 THEN ‘조건 2 만족 시 반환할 값’ ELSE ‘다 아닐 경우 반환할 값’ END '결과값을 원하는 컬럼명으로 지정' SQL공부하면서 멋스럽다고 생각했던 부분이 바로 이 서브쿼리였다. 내가 이해한 차이점: IF/ELSE는 조건 1개만 CASE/WHEN 조건 여러개 가능 https://school.programmers.co.kr/learn/courses/30/lessons/157340 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건1. 2..
약수 구하기 활용하기 프로그래머스에서 처음 약수의 개수를 구하는 알고리즘을 만들때 전부 구했더니 시간초과가 발생했다. 해결 방법은 반으로 나눠서 보는것이다. 신기했다. 물론 지금은 모든 약수의 개수를 구해야 풀 수 있는 문제를 풀었지만 1번 문제: 약수의 합이 자기 자신이 되는 숫자 찾아서 형식에 맞게 출력 1. sorted(list(map(int,open(0).read().split()))) 2. print(" + ".join(map(str,yaksu(i)[:-1]))) 리스트에 있는 원소 사이에 + 추가해서 추출 *str형식이여야함 2번 문제: 소수 찾기 for문 두개로 약수 개수 확인하고 소수 개수 출력하기 9506번: 약수들의 합 #약수의 합이 자기 자신이 되는 숫자 찾아서 형식에 맞게 출력 # sorted(list(..
배운게 나오긴 하는구나! COUNT(column_name) 해당 컬럼의 개수 세기 GROUP BY column_name 해당 컬럼을 기준으로 그룹화 하기, 여러개 가능 HAVING 조건 그룹화 후 그룹 필터링 *(WHERE은 행 필터링) UNION ALL 추출해온 두 데이터 결합 NULL AS column_name 해당 컬럼의 자료는 NULL값으로 변경 오랜만에 꽤 생각해야 하는 SQL문을 만났다. 결합과 조건만큼 데이터 추출할 때 중요한 게 있을까? https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요...
괜히 어렵게 풀었다! 백준 2차원 배열에서 최대값의 행,열 정보 추출 - list(map(int, open(0).read().split() - 9x9 행렬일때 index값을 9로 나눈 몫과 나머지로 행,열 정보 추출 프로그래머스 2차원 배열에서 행,열 정보로 min,max구하기 - for i in range(len(wall): for j in range(len(wall[i]): # i = 행, j = 열 백준 2566번: 최댓값 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net # list(map(int,open(0).read().split()))를 ..
Round ROUND(AVG(DAILY_FEE),0) AS AVERAGE_FEE https://school.programmers.co.kr/learn/courses/30/lessons/151136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 평균 일일 대여 요금 구하기 조건 1. 자동차 종류가 'SUV' 조건 2. 평균 일일 대여 요금을 출력 조건 3. 소수 첫 번째 자리에서 반올림 SELECT ROUND(AVG(DAILY_FEE),0) AS AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE = 'SUV'