# | 날짜 | 난이도 | 문제이름 | 링크 | 풀이 | 완료 | Best |
---|---|---|---|---|---|---|---|
1 | 22-04-07 | Silver II | 마인크래프트 | 문제 | 마인크래프트.py | ✔ | 이호산 |
2 | 22-04-07 | Silver III | 스택 수열 | 문제 | 스택수열_1874.py | ✔ | 양해찬 |
3 | 22-04-07 | Silver I | 경로 찾기 | 문제 | BOJ_11403_경로_찾기 | ✔ | 김은혜 |
4 | 22-04-07 | Gold V | AC | 문제 | AC.py | ✔ | 이호산 |
5 | 22-04-07 | Gold IV | DSLR | 문제 | 백준 9019 | ✔ | 배서영 |
6 | 22-04-11 | Level 2 | K진수에서 소수 개수 구하기 | 문제 | k진수에서소수개수구하기.py | ✔ | 선혜주 |
7 | 22-04-11 | Level 2 | n^2 배열 자르기 | 문제 | n^2배열자르기.py | ✔ | 선혜주 |
8 | 22-04-11 | Level 2 | 주차요금 계산 | 문제 | 주차요금.py | ✔ | 이호산 |
9 | 22-04-11 | Level 3 | 디스크 컨트롤러 | 문제 | 디스크 컨트롤러/sol.py | ✔ | 배서영 |
10 | 22-04-11 | Level 3 | 정수삼각형 | 문제 | 정수삼각형.py | ✔ | 이호산 |
11 | 22-04-14 | Gold V | 연구소 | 문제 | 14502.py | ✔ | 선혜주 |
12 | 22-04-14 | Gold III | 파일 합치기 | 문제 | - | ✔ | - |
13 | 22-04-14 | Silver II | 잃어버린 괄호 | 문제 | 잃어버린괄호_1541.py | ✔ | 양해찬 |
14 | 22-04-14 | Silver II | 연속합 | 문제 | BOJ_1912_연속합 | ✔ | 김은혜 |
15 | 22-04-14 | Silver I | 신입사원 | 문제 | BOJ_1946_신입_사원 | ✔ | 김은혜 |
16 | 22-04-18 | Level 2 | 멀쩡한 사각형 | 문제 | - | ✔ | - |
17 | 22-04-18 | Level 2 | 뉴스 클러스터링 | 문제 | PRGRMRS_17677_뉴스_클러스터링 | ✔ | 김은혜 |
18 | 22-04-18 | Level 2 | 배달 | 문제 | PRGRMRS_12978_배달 | ✔ | 김은혜 |
19 | 22-04-18 | Level 3 | 표 편집 | 문제 | 표편집.py | ✔ | 선혜주 |
20 | 22-04-18 | Level 3 | 불량 사용자 | 문제 | 불량사용자.py | ✔ | 선혜주 |
21 | 22-04-25 | Silver III | 퇴사 | 문제 | 퇴사.md | ✔ | 이호산 |
22 | 22-04-25 | Silver II | 스타트와 링크 | 문제 | 14889.py | ✔ | 배서영 |
23 | 22-04-25 | Silver I | 연산자 끼워넣기 | 문제 | 연산자.md | ✔ | 이호산 |
24 | 22-04-25 | Gold V | 파이프 옮기기 1 | 문제 | 파이프옮기기 | ✔ | 이호산 |
25 | 22-04-25 | Gold III | 카드 게임 | 문제 | 카드게임 | ✔ | 이호산 |
26 | 22-05-02 | Level 2 | 수식최대화 | 문제 | 수식 최대화.py | ✔ | 배서영 |
27 | 22-05-02 | Level 2 | 게임 맵 최단거리 | 문제 | 게임맵최단거리.py | ✔ | 선혜주 |
28 | 22-05-02 | Level 2 | 삼각달팽이 | 문제 | .삼각달팽이.py | ✔ | 이호산 |
29 | 22-05-02 | Level 3 | 합승 택시 요금 | 문제 | PRGRMRS_72413_합승_택시_요금 | ✔ | 김은혜 |
30 | 22-05-02 | Level 3 | 양과 늑대 | 문제 | 양과늑대.py | ✔ | 이호산 |
31 | 22-05-16 | Silver III | 배열 복원하기 | 문제 | 16967.py | ✔ | 선혜주 |
32 | 22-05-16 | Silver III | 색종이 만들기 | 문제 | BOJ_2630_색종이_만들기 | ✔ | 김은혜 |
33 | 22-05-16 | Silver I | 1로 만들기 2 | 문제 | 12852.py | ✔ | 배서영 |
34 | 22-05-16 | Gold V | 최단 경로 | 문제 | BOJ_1753_최단경로 | ✔ | 김은혜 |
35 | 22-05-16 | Gold V | N-Queen | 문제 | 9663.py | ✔ | 선혜주 |
36 | 22-05-19 | Level 2 | 124 나라의 숫자 | 문제 | 124나라의숫자.py | ✔ | 선혜주 |
37 | 22-05-19 | Level 2 | 더 맵게 | 문제 | 더맵게.py | ✔ | 이호산 |
38 | 22-05-19 | Level 2 | 프린터 | 문제 | 프린터.py | ✔ | 이호산 |
39 | 22-05-19 | Level 3 | 보석 쇼핑 | 문제 | PRGRMRS_67258_보석_쇼핑 | ✔ | 김은혜 |
40 | 22-05-19 | Level 3 | 등굣길 | 문제 | 등굣길.py | ✔ | 선혜주 |
41 | 22-05-23 | Silver II | LCD Test | 문제 | BOJ_2290_LCD_Test | ✔ | 김은혜 |
42 | 22-05-23 | Silver II | 점프 | 문제 | 점프.py | ✔ | 이호산 |
43 | 22-05-23 | Silver I | 음식물 피하기 | 문제 | 1743.py | ✔ | 선혜주 |
44 | 22-05-23 | Gold V | 신기한 소수 | 문제 | BOJ_2023_신기한_소수 | ✔ | 김은혜 |
45 | 22-05-23 | Gold IV | 가르침 | 문제 | 가르침.py | ✔ | 이호산 |
46 | 22-05-26 | Level 2 | 거리두기 확인하기 | 문제 | 거리두기확인하기.py | ✔ | 선혜주 |
47 | 22-05-26 | Level 2 | 다음 큰 숫자 | 문제 | PRGRMRS_12911_다음_큰_숫자 | ✔ | 김은혜 |
48 | 22-05-26 | Level 2 | 땅따먹기 | 문제 | 땅따먹기.py | ✔ | 이호산 |
49 | 22-05-26 | Level 2 | JadenCase 문자열 만들기 | 문제 | PRGRMRS_12951_JadenCase_문자열_만들기 | ✔ | 김은혜 |
50 | 22-05-26 | Level 3 | 사라지는 발판 | 문제 | 사라지는발판.py | ✔ | 이호산 |
-
- i에서 k를 거쳐 j로 갈 때 i에서 j까지의 최단거리를 업데이트 해주는 방식
# adj는 인접행렬 for k in range(N): # k는 거쳐가는 노드 for i in range(N): # i는 출발 노드 for j in range(N): # j는 도착 노드 if adj[i][k] + adj[k][j] < adj[i][j]: adj[i][j] = adj[i][k] + adj[k][j]
-
mod(%) 활용 법
# 수의 범위가 0 ~ 9999 일 때 음수 처리 방법 num = -2 % 10000 # 9998
-
2차원 배열 debugging 법
arr = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5],] print(*arr, sep="\n") # 각각의 arr의 요소들을 "\n"로 구별하여 출력 """ [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] [1, 2, 3, 4, 5] """
-
permutations & combinations
from itertools import permutations, combinations items = [1, 2, 3, 4, 5] print(list(combinations(items, 2))) # [(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)] print(list(permutations(items, 2))) # [(1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 4), (3, 5), (4, 1), (4, 2), (4, 3), (4, 5), (5, 1), (5, 2), (5, 3), (5, 4)]
-
defaultdict
from collections import defaultdict d_dict = defaultdict() d_dict[i] += 1 #초기화 없이 사용가능
-
Counter
from collections import Counter items = [2, 2, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 5, 5, 5, 5, 5, 5] # Counter({5: 6, 1: 5, 3: 3, 2: 2, 4: 2}) str1 = "eeeeelllllllllliiiiiccccccccee" # Counter({'l': 10, 'c': 8, 'e': 7, 'i': 5}) cnt1 = Counter(items) cnt2 = Counter(str1) # 가장 많은 top 3 cnt1.most_common(3) # [(5, 6), (1, 5), (3, 3)] cnt2.most_common(3) # [('l', 10), ('c', 8), ('e', 7)]
-
for-else, while-else 구문
for or while: # 블라블라 break else: # break를 통해 루프가 끝나지 않았을 경우에 쓰는 코드
-
import sys
sys.setrecursionlimit(limit_number)
- 재귀함수 제한 해제하고 싶을 때 ( default = 1000 )
sys.stdin.readline()
- 입력 받을 때 ( input 보다 속도상에서 우위, 문자열로 입력받을 때 \n 개행까지 입력받으므로 주의 )
-
BFS: 큐를 이용 (from collections import deque)
- 최단거리 문제 (DFS보다 빠를때가 많음)
-
DFS: 스택를 이용 (python list 사용)
- 백트래킹 문제 (모든 경우의 수를 봐야할 때)