메모 3월13일

minchan jung·2022년 3월 14일
0

일기장

목록 보기
4/5

알고 목록1

  1. BruteForce (5문)
  2. Greedy (3문)
  3. Heap (8문)
  4. Topology (3문)

알고 목록2

  1. BFS (8문)
  2. DFS (14문)
  • DFS-DP (5문)
  • Tree-DP (2문)
  • BackTrack(7문)
  1. 정렬
    • Hash(3문)
    • 분할 정복
    • 이분 탐색

알고 목록3

  1. 문자열 알고리즘(3문)
  2. 수학 (2문)
  3. 자료구조(7문)
  4. 그래프(5문), 트리(3문)
  5. SQL (28문)

시간

  • 추가 : 30m +10m

3.5H : p- 문자열압축. (케이스 if 나누기 꼼꼼-지저분해도 좋다 꼼꼼히!)
1H : 괄호 변환(replace 안좋다 정확히 stack 으로 괄호 확인)
2.5H : 자물쇠와 열쇠 (board 넓히는 트릭)
0.5H : 신고결과받기(lev1)
0.5H : k진수에서 소수 개수 구하기 ( 진법 + 소수판별 (lev2) )
0.5H : 주차요금 계산 (lev2, dict 활용, 인덱싱)
2.5H : 양궁(조합,BFS!, 실패)
0.5H : hash (위장), stack,q(기능개발)
1.5H : hash( 후보키, lev2)
2.5H : SQL (23문)
1.0H : SQL (5문)

17.5H

진법전환 reminder

def solution(n, q):
    rev_base = ''

    while n > 0:
        n, mod = divmod(n, q)
        rev_base += str(mod)

    return rev_base[::-1] 

소수판별 reminder

import math 

def isPrime(N):
    if N == 1: return False  
    for i in range(2,int(math.sqrt(N))+1):
        if not N%i : return False
    return True 

SELECT IF

SELECT IF(GRADE < 8, NULL, NAME), GRADE, MARKS
FROM STUDENTS S 
LEFT JOIN GRADES G 
ON S.MARKS BETWEEN G.MIN_MARK AND G.MAX_MARK
ORDER BY GRADE DESC, NAME 

NEST JOIN

SELECT DISTINCT H.HACKER_ID, H.NAME
FOR SUBMISSIONS S
LEFT JOIN CHALLENGE C 
ON S.CHALLENGE_ID = C.CHALLENGE_ID
LEFT JOIN DIFFICULTY D 
ON C.DIFFICULTY_LEVEL = D.DIFFICULTY_LEVEL
LEFT JOIN HACKERS H
ON D.HACKER_ID = H.HACKER_ID
WHERE D.DIFFICULTY_LEVEL = C.DIFFICULTY_LEVEL AND D.SCORE = S.SCORE
GROUP BY H.HACKER_ID, H.NAME
HAVING COUNT(H.HACKER_ID) > 1
ORDER BY H.HACKER_ID

0개의 댓글