thinking 어차피 물건은 마지막날에 팔기때문에 뒤에서부터 체크해주면 된다. 뭔말이냐면, 매매가가 3, 4, 3, 1, 2, 3, 1 인 경우 앞에 3, 4 는 4가 제일 크므로 4에서 팔고, 중간의 3, 1, 2, 3, 은 맨 뒤 3이 가장 크므로 3일 때 판다. 마지막 1 은 1일때 판다. 즉, 뒤에서부터 보면서 최대값을 구하고, 그 값보다 같거나 작은 애들의 수익을 더하면 된다. 코드 price 리스트의 뒤에서부터 최대값을 체킹할거라 max_val 을 맨 뒤의 값으로 잡아줬다. 맨 뒤부터 돌면서 값을 비교하고 갱신한다. T = int(input()) for tc in range(1, T + 1): N = int(input()) price = list(map(int, input().split())..
코드 ❕ 주의 ❕ 90도 회전하는 rotation 함수에서 먼저 NxN 빈 배열을 만들어줘야 한다. 그래야 회전한 값을 넣을 수 있다. T = int(input()) # 90도 회전하는 함수 def rotation(a, N): new_arr = [[0] * N for _ in range(N)] # NxN 빈 배열 먼저 만들기 for i in range(N): for j in range(N): new_arr[i][j] = a[N-1-j][i] return new_arr for tc in range(1, T+1): N = int(input()) arr = [list(map(int, input().split())) for _ in range(N)] rot_90 = rotation(arr, N) rot_180 ..
🚩 stack, 후위표기식(postfix) 코드 T = 10 for tc in range(1, T+1): N = int(input()) # 문자열길이 S = input() # input 문자열 stack = [] postfix = '' # 후위표기식 문자열 cal = [] # 계산할 스택 # 1. 후위표기식으로 변환 for i in S: # 스택 비었으면 연산자 넣고 if not stack and i == '+': stack.append(i) # 스택에 이미 +가 있으면 빼고 추가 elif stack and i == '+': postfix += stack.pop() stack.append(i) # 숫자이면 그냥 추가 else: postfix += i # 스택에 남아있는 마지막 + 빼줘야되서 for~els..
코드 T = int(input()) for tc in range(1, T+1): S = input() # 인풋 스트링 stack = [] for s in S: # 괄호인 애들만 체킹 if s == '{' or s == '(': stack.append(s) elif s == '}' or s == ')': # stack이 비어있으면 추가하고 break. 어차피 뒤쪽을 봐야 이미 짝이 안맞기 때문 if not stack: stack.append(s) break # s랑 stack의 마지막 요소랑 다른 괄호이면 역시 그냥 더해주고 break. 어차피 제대로 된 짝이 아니니까 elif (s == '}' and stack[-1] != '{') or (s == ')' and stack[-1] != '('): stac..
진기는 0초부터 붕어빵을 만들기 시작하며, M초의 시간을 들이면 K개의 붕어빵을 만들 수 있다. N명의 사람들이 오는 시간에 따라 붕어빵을 제공할 수 있는지 없는지를 판별하는 문제이다. thinking 무조건 손님 1명한테는 1개의 붕어빵을 판매하기 때문에 하나씩 카운트를 해주면 된다. 0초부터 M초 마다 붕어를 만듦으로 M, 2M, 3M, ... 초 마다 K, 2K, 3K의 붕어빵이 남는다. 그렇다면 일반적으로 x초 일때의 붕어 생산량과 그 전에 사간 사람의 수를 빼면 x초의 붕어빵 재고를 알 수 있다. 재고가 음수가 되면 다 팔렸다는 뜻이므로 Impossible 을 출력하면 된다. 손님이 온 시간을 arrive_time 이라는 리스트에 담아 올림차순으로 소팅을 해준 후, 소팅한 arrive_time ..
- 기지국설치
- swea
- 영어끝말잇기
- BFS
- merge 에러
- 2018 카카오 공채
- 프로그래머스
- 2579 계단오르기
- 삼성기출
- 21609 상어 중학교
- dp
- 17406 배열돌리기4
- react
- merge에러
- 브루트포스
- 삼성코테
- 파이썬
- dfs
- 20057 마법사 상어와 토네이도
- 백준
- 20056 마법사 상어와 파이어볼
- 알고리즘
- git 미러링
- Python
- 보석쇼핑
- Total
- Today
- Yesterday