일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- BFS
- Markdown
- springboot
- 몬티홀
- 프로세스
- deque
- g1gc
- GC
- 문제풀이
- 백준
- 배열 돌리기1
- Python
- github
- DP
- 정수론
- 구현
- 그래프탐색
- 마크다운
- 면접복기
- Stack
- 브루트포스
- 빌더패턴
- 분할정복
- GarbageCollector
- 그래프 탐색
- 이진탐색
- 회고
- 그리디
- Greedy
- 적정 스레드
- Today
- Total
목록백준 (4)
FeelingXD
❓ Problem 🤔 How 다차원 배열을 돌려야하는 문제가 나온다면 기존 배열을 복사 후 이동 위치에따른 움직임을 생각하는 편이다. 복사하는 과정에서 공간복잡도와 시간복잡도를 소모 할 수 있지만 개인적으로 이러한 풀이를 선호한다. 문제만 읽어보면 정말 직관적인 문제이다. 단순히 배열을 돌려서 만들어지는 배열을 출력하는 문제. 해결하기 위한 특수한 알고리즘을 사용한다기보다는 직관적으로 읽고 구현에 포커스를 맞추는 문제이다. 간단하게 핵심이되는 배열을 돌리는 코드에대해서만 추가적으로 설명하고자 한다. def rotate_board(board, round): global M, N copy_board = [line[:] for line in board] square = min(M, N) # 보정 M -= 1 ..
❓ Problem 🤔 How ❗ Solve # 나이트 투어 import sys input =sys.stdin.readline ROWS=COLOUMS=6 visited=[[False]*6 for _ in range(6)] moves=[[2,1],[-2,1],[1,2],[1,-2],[-1,2],[-1,-2],[2,-1],[-2,-1]] # 나이트의 이동 def board_to_pos(word): # 체스보드 위치를 좌표로 변환 x=ord(word[0])-ord('A') y=ROWS-int(word[1]) return (y,x) def validate_move(s_pos,t_pos): # 현재위치와 다음위치 비교 global visited cy,cx=s_pos for dy,dx in moves: ny,nx=c..
❓ Problem 자두는 자두를 좋아한다. 그래서 집에 자두나무를 심어두고, 여기서 열리는 자두를 먹고는 한다. 하지만 자두는 키가 작아서 자두를 따먹지는 못하고, 자두가 떨어질 때까지 기다린 다음에 떨어지는 자두를 받아서 먹고는 한다. 자두를 잡을 때에는 자두가 허공에 있을 때 잡아야 하는데, 이는 자두가 말랑말랑하여 바닥에 떨어지면 못 먹을 정도로 뭉개지기 때문이다. 매 초마다, 두 개의 나무 중 하나의 나무에서 열매가 떨어지게 된다. 만약 열매가 떨어지는 순간, 자두가 그 나무의 아래에 서 있으면 자두는 그 열매를 받아먹을 수 있다. 두 개의 나무는 그다지 멀리 떨어져 있지 않기 때문에, 자두는 하나의 나무 아래에 서 있다가 다른 나무 아래로 빠르게(1초보다 훨씬 짧은 시간에) 움직일 수 있다. 하..
❓ Problem 🤔 How 역순으로 dp테이블을 구성한다. 첫날부터 탐색할경우 일하는경우 하지않는경우 모두 탐색하기에 dp테이블로 일반화하기에는 어려움이있다. dp[i] 는 i 일부터의 최대값 으로 dp테이블을 만들어준다. dp 테이블의 갱신 테이블은 다음과같이 갱신된다 일을할수 있는경우 dp[i] =max(dp[i+d]+v,dp[i+1]) dp[i+d]+v 오늘일할경우 오늘일의 가치와 오늘일이 끝난이후의 최대값과 더해준 결과가 dp[i+1] 다음날 최대값과 비교해서 최대값을 갱신해준다. 일을 할수없는경우 다음날의 최대값 과 같다. dp[i]=dp[i+1] ❗ Solve #퇴사 import sys input = sys.stdin.readline if __name__ == "__main__": work_..