12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970import sysfrom collections import dequen, m = list(map(int, input().split())) graph = []for i in range(n): graph.append(list(map(int, sys.stdin.readline().rstrip()))) # 상하좌우 이동dx = [1, 0, -1, 0]dy = [0, 1, 0, -1] # 벽을 뚤었는지 안 뚫었는지 판단하기 위해 삼차원 배열 사용visited = [[[False f..
1234567891011121314151617181920212223242526272829303132333435363738import sys case = int(input())num_list = []for _ in range(case): num_list.append(int(sys.stdin.readline().strip())) def get_gcd(a, b): # 유클리드 호제법으로 최대공약수 구하기 if b > a: temp = a a = b b = temp if b == 0: return a else: return get_gcd(b, a % b) diffs = []for i in range(1, len(num_list)): # 이웃한 숫자의 차이를 구하기 diffs.append(abs(num_list[..
이분탐색 (Binary Search)를 이용한 문제 이분탐색이란 우리가 일반적으로 업다운 문제를 풀 때의 원리와 똑같다. 1에서 100까지의 수 중 74라는 숫자를 맞추기 위해 우리는 먼저 50을 부른다. up이 나오면 그 다음에는 50과 100의 중앙값인 75를 부른다. 이를 반복하면 74라는 숫자를 찾을 수 있다. 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 import sys N = int(input()) num_list1 = list(map(int, sys.stdin.readline().strip().split())) num_list1.sort() M = int(input()) num_list2 = list(..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 num = int(input()) def get_min(num): dp = [[] for _ in range(num+1)] dp[0] = [num] for i in range(num): for step in dp[i]: if step == 1: return i if step % 3 == 0: dp[i + 1].append(step // 3) if step % 2 == 0: dp[i + 1].append(step // 2) dp[i + 1].append(step - 1) print(get_min(num)) cs 다이내믹 프로그래밍으로 코드를 작성했지만 이중 for문이라 다른 정답자들에 비해 효율적이지 못하다...
제일 처음에는 재귀를 이용하여 문제를 풀었다. 그러나 재귀함수를 이용할 경우 반복되는 연산이 많아 시간초과가 뜬다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 재귀호출 ver import sys num_of_stairs = int(input()) stairs = [] for _ in range(num_of_stairs): stairs.append(int(sys.stdin.readline().strip())) # s_n = s_n-1 + a_n or s_n-2 + a_n def climbing(n, two_step): # two_step은 이전 계단에서 2칸 이동했는지 확인 if n
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 # pypy3로 제출해야 시간초과가 나지 않습니다. sudoku = [] for _ in range(9): sudoku.append(list(map(int, input().split()))) def print_sudoku(sudoku): for line in sudoku: print(*line) print() def check_sudoku(i,j, candidate): global sudoku # 세로 체크 for x in range(9): if sudok..
1234567891011121314151617181920import sys num = int(input())meeting_list = []for case in range(num): meeting_list.append(list(map(int, sys.stdin.readline().strip().split()))) # 회의가 끝나는 시간이 빠른 순으로 재정렬meeting_list = sorted(meeting_list, key=lambda x: (x[1],x[0])) post_meeting = [0, 0]count = 0for meeting in meeting_list: if post_meeting[1] > meeting[0]: pass else: count += 1 post_meeting = [meetin..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import sys num, target = list(map(int,(input().split()))) coin_list = [] for case in range(num): coin_list.append(int(sys.stdin.readline().strip())) total = 0 count = 0 for coin in coin_list[::-1]: if coin > target or coin + total > target: pass else: temp = (target-total)//coin total += temp * coin count += temp if total == target: print(count) br..
- Total
- Today
- Yesterday
- 파이썬
- 리액트 키
- localhost https
- 1463
- props를 변경하지 못하는 이유
- 리액트 jsx
- Hash Router
- 프론트
- 리액트 props
- 프론트엔드
- 백준
- contentEditable focus
- 리액트 동작원리
- Redux Thunk
- 리덕스 썽크
- 리액트 리덕스
- Python
- React key
- Browser Router
- 우테코
- 다라쓰
- 리액트 리스트 key
- 해쉬 라우터
- 브라우저 라우터
- 리액트 리스트 키
- 우아한테크코스
- 인사이트
- mkcert
- props를 변경하지 않는 이유
- 댓글 모듈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |